如题所述
第1个回答 2015-04-14
#include <stdio.h>
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\n",sum);
return 0;
}
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\n",sum);
return 0;
}
注意类型 必须是8字节的整形 用__int64或者用long long (编译器相关)
本回答被网友采纳第2个回答 2015-04-14
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");
}
如果有疑问,可以追问
{
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");
}
如果有疑问,可以追问
第3个回答 推荐于2018-03-20
#include <stdio.h>
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;
}
}本回答被网友采纳
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;
}
}本回答被网友采纳
第4个回答 2015-04-14
#include<iostream>
using namespace std;
int main()
{
int num,temp=1;
cin>>num;
if(num<=1&&num>16)
cout<<"input error"<<endl;
else
{
while(num>0)
temp*=num--;
cout<<temp<<endl;
}
return 1;
}
using namespace std;
int main()
{
int num,temp=1;
cin>>num;
if(num<=1&&num>16)
cout<<"input error"<<endl;
else
{
while(num>0)
temp*=num--;
cout<<temp<<endl;
}
return 1;
}
第5个回答 2015-04-14
#include<stdio.h>
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);
}追问
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)
这只是一句参考,让你编程的时候考虑数据大小的