includestdio.h define N 5 int main(){ int i,a=1;for(i=N; i=1; i--){ a *= i;} printf(%d\n,a);return 0;} 我写了一个给你,算法简单,结果正确,楼主也可自己随意更改。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟主机、营销软件、网站建设、安丘网站维护、网站推广。
首先你需要把那个else if (n==0, n==1) 的逗号改成或:else if (n == 0 || n == 1)这样的话才正确,否则输入0就报错了。
思路:先用递归求出一个数的阶乘,接着for循环累加求和。
1、嗯,楼上贴了个好文。不过用字符数组储存数字结果这点对于初学者来说可能有点太难懂了……他们应该上C语言才讲到循环语句啊。
2、include stdio.h void main(){ int t,i;t=1;i=2;if(i=5){ t=t*i;i=i+1;} printf(%d,t);} t=t*i后要有。
3、for(i=1;i=n;i++)//for循环求累积s=s*i;printf(%d\n,s);return 0;}/*运行结果:(例如求5的阶乘) 5120*/ 从桌面打开下载好的编程软件,下图为visual C++的打开界面。
1、先定义一个变量sum作为结果的记录,然后用一个循环 从1循环到5 依次乘起来。
2、…他们应该上C语言才讲到循环语句啊。给个简单的循环不就行了?哦,当然有需要注意的,阶乘的增长速度很快,所以,20!估计至少得用double型存储吧。
3、for(i=1;i=n;i++)//for循环求累积s=s*i;printf(%d\n,s);return 0;}/*运行结果:(例如求5的阶乘) 5120*/ 从桌面打开下载好的编程软件,下图为visual C++的打开界面。
4、int 最大只能存到2^31 -1 = 2147483647 13!=6227020800 所以只要超过13 就会导致溢出出错。解决方法: 要么改成double的 求近似值 要么,改数组模拟高精度大数运算。
5、9*9!还在int型范围内,而题设和要比9*9!小很多,所以用int型变量就可以准确解决。用一个for循环兼作求阶乘和求和两项功能,空间、时效都较经济。
6、{ s=1;for(i=1;i=n;i++)s=s*i;sum=sum+s;} printf(%d,sum);} //方法二。只需要单重循环就可以了。