这个题,求阶乘和,循环遍历就可以了,不用双重个循环,每次计算阶乘和,然后累加就可以
主要注意数值的大小,用int肯定放不下的,必须用double,并且中间的阶乘结果也要用double才能不会出现答案错误的问题。
PS:printf的科学计数法格式是%e
应该看一下就明白,答案如下:
#include<stdio.h> int main() { int i; double j=1,sum=0; for(i=1;i<=30;i++) { j = j*i; sum = sum+j; } printf("%.2e\n",sum); return 0; }
0.0分
76 人评分
#include<stdio.h> int f(int a) { if(a==1) return 1; else return a*f(a-1); } int main(){ double b=0,j=1; for(int i=1;i<=30;i++) { b+=f(i); } printf("%.2e\n",b); return 0; } 我这个怎么不对呀
int main() { int i,j; double an=1,sum=0; for(i=1;i<=30;i++) { for(j=1;j<=i;j++) { an*=j; } sum+=an; an=1; } printf("%0.2e\n",sum); return 0; }
妙啊,利用了(n + 1)!=(n + 1)*n!
#include <stdio.h> int main() { int i,a=1; double sum=0,b; for(i=1;i<=30;i++) { b=i; while(b>0) { a=a*b; b--; } sum=sum+a; a=1; } printf("%.2e\n",sum); return 0; } 为啥这个不对
#include<stdio.h> int main() { int i; double a=0,s=0; for(i=1;i<=30;i+=2) { a=a+i; s=s+a; } printf("%.2e",s); return 0; } //我这个问题在哪啊
T 2022-09-17 10:54:40 |
阶乘的话循环里面应该是(a=a*i; 或者 a*=i;)而不是(a=a+i;//这个是求和呀)
好奇怪啊,我用long long 写阶乘函数factorial命令,然后用long long int输出可以,但是为啥科学计数法就出错