回 帖 发 新 帖 刷新版面

主题:1到n的阶乘求和 !!

怎么用C#编写 1!+2!+......+n!=y  的程序啊 ,要用循环语句写的, y 是双精浮点数. n是用键盘输入的. 
  哪位大哥帮帮忙 !!!!谢谢!!!!![em18][em18][em18]

回复列表 (共3个回复)

沙发

两重循环啊。
内层算n!
外层算y=y+n!

板凳

#include<stdio.h>
main()
{
    double y=0;
    int n,i,j,s=1;
    scanf("%d",&n);
    for(i=1;i<=n;i=i+2)
    {
        for(j=1;j<=i;j++)
        {
            s=s*j;
            y=y+s;
        }
    }
    printf("%lf",y);
}
我就多余说明几句,能看明白就看吧

3 楼

#include<stdio.h>
main()
{
long int N(int);                            /*使用一个函数来做阶乘*/
long int i,n;
long double y=0;
puts("enter a number to be caculate:\n");
scanf("%ld",&n);
printf("n=%ld\n",n);
for(i=1;i<=n;i++)
y+=N(i);                         /*利用循环n次调用函数实现累加*/
printf("the result is %lf",y); 
}

long int N(int x)
{
long int i,m=0;
m=x;
for(i=1;i<x;i++)
m*=(x-i);

return(m);                             /*将阶乘的结果赋值给m 并返回*/
}
我个人觉得用一个函数来实现阶乘会增加函数的可读性 上面是我的程序
应该比较清晰了吧

我来回复

您尚未登录,请登录后再回复。点此登录或注册