永发信息网

C语言求一到n的阶乘之和,n大于1小于等于16。

答案:7  悬赏:30  手机版
解决时间 2021-02-24 15:48
  • 提问者网友:沦陷
  • 2021-02-24 08:42
C语言求一到n的阶乘之和,n大于1小于等于16。
最佳答案
  • 五星知识达人网友:由着我着迷
  • 2021-02-24 10:17
#include 
int fun(int n)
{
    int sum = 0;
    if (n == 1)
        sum = n;
    else
        sum = n + fun (n-1);
    return sum;
}

void main()
{
    int n;
    while(1){
    scanf("%d",&n);
    if(n < 16 && n > 1){
    printf("%d",fun(n));
    break;
    }
}
全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-02-24 16:00
#include
void main()
{
int i;
int s=1;
for(i=1;i<17;i++)
{
s*=i;
}
printf("%d\n",s);

}
  • 2楼网友:十年萤火照君眠
  • 2021-02-24 15:14
#include
main()
{
int i,n,count=0,tem=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++) tem*=j;
count+=tem;
tem=1;
}
printf("%d\n",count);
}追问你的n取值范围没有啊追答这道题的意思应该是输入n,求一到n的阶乘之和(其中n大于1小于等于16)
这只是一句参考,让你编程的时候考虑数据大小的
  • 3楼网友:走死在岁月里
  • 2021-02-24 13:54
long jiecheng(long n){
long a=1;
if(n==0){
return 1;
}
else if(n>0){
return n*=jiecheng(n-1);
}
}
long sum=0;
for(long i=1;i<=16;i++)
{
sum+=jiecheng(i);
}
printf("sum=%I64d\n",sum);
  • 4楼网友:想偏头吻你
  • 2021-02-24 12:51
int main()
{
int a,n ,b;
b = 1;
a = 1;
printf("输入n(1-16)");
scanf("%d",&n);
if( n == 1)
{
printf("1到n的阶乘之和为1");
}
else
for (i = 2; i < n; i++)
{
a = a*i;
b = b+a;
}
printf("1到n的阶乘之和为 %d \n");
}
如果有疑问,可以追问
  • 5楼网友:往事隔山水
  • 2021-02-24 11:55
#include 
   
int main() {
    __int64 fact = 1,i,sum = 0;
    int n;
    scanf("%d",&n);
    for(i = 1; i <=n; ++i)    {
        fact *= i;
        sum += fact;
    }
    printf("sum = %I64d ",sum);
    return 0;
}
注意类型 必须是8字节的整形 用__int64或者用long long (编译器相关)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯