#include
void main()
{int n,m,s=0;
for(n=1,m=1;n<=10;n++)
{m=n*m;
s+=m;
printf("%d\n",m);
}
printf("%d\n",s);
}
替换main函数的内容为如下就可以了。最小限度的修改你的程序,同样速度还挺快。根本不用两个for。
int n,m,sum;
for(n=1,m=1,sum=0;n<=10;n++)
{
m*=n;
sum += m;
}
printf("%d\n",sum);
写个函数计算N!
//n不能太大,注意int的取值范围
int foo(int n)
{
int i,m=1;
for(i=0;i
}
void main()
{
int i,sum=0;
for(i=1;i<=10;i++) sum += foo(i);
printf("1! + 2! + ... + 10! = %d\n", sum);
}
你这个程序只要加一句和加一个变量就可以
#include
void main()
{
int n,m=1,s=0;
for(n=1;n<=10;n++)
{
m=n*m; //m就是n的阶乘,不需要新的循环,也不需要子函数来求
s+=m; //这个就是实现+的运算
}
printf("%d\n",m);
}
你们不觉得应该是两个for嵌套才能实现吗?
for(n=1;n<=10;n++)//大数阶乘需要另想办法
{
//j计算n的阶乘加到s
tmp = 0;//tmp保存临时的阶乘计算结果
for(m = n;m>1/*1没必要计算*/;m--)
{
tmp*=m;
}
s+=tmp;
}
#include
void main()
{
int n,m,i,sum=0;
for(n=1;n<=10;n++)
{
m=1;
for(i=1;i<=n;i++) m *=i;
sum+=m;
}
printf("%d\n",sum);
}