c语言,求1!+2!+3!+4!+5!+....+n!
#include"stdio.h"intmain(){inti,n,sum;printf("inputanumber:",n);sum=0;for(i=1;i<=n;i+...
#include"stdio.h"
int main()
{
int i,n,sum;
printf("input a number:",n);
sum=0;
for(i=1;i<=n;i++)
sum+=i*i;
printf("sum=%d\n",sum);
return 0;
}
求修改!! 展开
int main()
{
int i,n,sum;
printf("input a number:",n);
sum=0;
for(i=1;i<=n;i++)
sum+=i*i;
printf("sum=%d\n",sum);
return 0;
}
求修改!! 展开
7个回答
展开全部
这里的关键是要有一个变量能存储下n!和整个的和,普通int型和long int型变量范围都很小,所以建议用double型变量。
你的程序虽然提示输入数据到变量n,但没有调用输入语句输入,应当:
printf("input a number:"); scanf("%d",&n);
你用sum变量保存累加和,这是正确的,但每项的阶乘值没有变量来保存是个问题,要知道阶乘也是一个累乘的结果,而i*i并不是n的阶乘而是n的平方。当前项等于前边相乘以当前的i值,这个累乘变量的起始值为1。
建议:
int i,n;
double sum,m;
...
sum=0; m=1; //变量m计算当前项即阶乘值
for ( i=1;i<=n;i++ ) { m*=i; s+=m; }
printf("sum=%.0lf\n",sum);
但请注意,仍有n过大无法计算的问题存在。
你的程序虽然提示输入数据到变量n,但没有调用输入语句输入,应当:
printf("input a number:"); scanf("%d",&n);
你用sum变量保存累加和,这是正确的,但每项的阶乘值没有变量来保存是个问题,要知道阶乘也是一个累乘的结果,而i*i并不是n的阶乘而是n的平方。当前项等于前边相乘以当前的i值,这个累乘变量的起始值为1。
建议:
int i,n;
double sum,m;
...
sum=0; m=1; //变量m计算当前项即阶乘值
for ( i=1;i<=n;i++ ) { m*=i; s+=m; }
printf("sum=%.0lf\n",sum);
但请注意,仍有n过大无法计算的问题存在。
展开全部
#include "stdio.h"
int main()
{
int i,n,sum,k=1;
printf("input a number:",n);
scanf("%d",&n);//输入语句
sum=0;
for(i=1;i<=n;i++)
{
k=k*i;
sum+=k;
}
printf("sum=%d\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int FactorialAdd (int num)
{
if (num == 1 || num == 0) {
return 1;
}
else
return num * FactorialAdd(num - 1);
}
int main()
{
//运行程序的时候,请把n换成你想要的数字;
int i, n, sum = 0;
for (i = 1; i <= n; i++) {
sum += FactorialAdd(i);
}
printf("sum = %d\n", sum);
return 0;
}
此处用到一个简单的递归算法
int FactorialAdd (int num)
{
if (num == 1 || num == 0) {
return 1;
}
else
return num * FactorialAdd(num - 1);
}
int main()
{
//运行程序的时候,请把n换成你想要的数字;
int i, n, sum = 0;
for (i = 1; i <= n; i++) {
sum += FactorialAdd(i);
}
printf("sum = %d\n", sum);
return 0;
}
此处用到一个简单的递归算法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-01-05
展开全部
#include <stdio.h>
int foo(int n) {
int i, sum = 1;
for(i=1;i<=n;i++)
sum*=i;
return sum;
}
int main()
{
int i, n, sum = 0;
printf("input a number:");
scanf("%d", &n);
for (i=1; i<=n; i++)
sum += foo(i);
printf("sum=%d\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
int fun(int p){
int i=1,sum=1;
for(i=1;i<=p;i++){
sum *= i;
}
return sum;
}
int main()
{
int i,n,sum;
printf("input a number:",n);
sum=0;
for(i=1;i<=n;i++)
sum+= fun(i); //修改的地方
printf("sum=%d\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询