原题链接:二级C语言-阶乘公式求值
解题思路以及注意事项:
定义fact()函数用for()循环计算阶乘,然后传值回到主函数。
用for()函数计算很多阶乘的和。
输入输出格式注意,中英文注意,保留有效位数。
实例代码:
include"stdio.h"
double fact(int n);
int main()
{
int s,i;
double sum=0;
scanf("%d",&s);
for(i=1;i<=s;i++)
{
sum+=1.0/fact(i);
}
printf("sum=%.5lf",sum);
return 0;
}
double fact(int n)
{
int i;
double item=1;
for(i=1;i<=n;i++)
{
item*=i;
}
return item;
}看看大家还有什么不懂的,请在下方评论区留言
0.0分
33 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
``` #include <stdio.h> double fact(int k) { double sum=1.0; for (int i=1; i<=k; i++) { sum *= i; } return sum; } int main(void) { int n, sum=0.0; scanf("%d", &n); for (int i=1; i<=n; i++) { sum += 1.0/fact(i); } printf("sum=%.5lf", sum); return 0; } ```#include <stdio.h> double fact(int k) { double sum=1.0; for (int i=1; i<=k; i++) { sum *= i; } return sum; } int main(void) { int n, sum=0.0; scanf("%d", &n); for (int i=1; i<=n; i++) { sum += 1.0/fact(i); } printf("sum=%.5lf", sum); return 0; } 哪错了?????#include<stdio.h> double fact(int k); int main(){ int n; int k; double sum=0; scanf("%d",&n); for(k=1;k<=n;k++){ sum+=1.0/fact(k); } printf("sum=%.5lf",sum); return 0; } double fact(int k){ int factorial=1,counter=1; while(counter<=k){ factorial*=counter; counter++; } return factorial; } 居然说我50%错误,看不出来错在哪里的哭了,跑了n=1,2,3,4,5,都是对的#include<stdio.h> double fact(int k){ double b=1,sum=0; for(int i=1;i<=k;i++){ b*=i; sum+=1/b; } return sum; } void main(){ int k; scanf("%d",&k); printf("sum=%.5lf\n",fact(k)); }#include <iostream> #include <stdio.h> using namespace std; double fact(int x) { int y=1; while(x!=1) { y=x*y; x--; } return y; } int main() { int n; double sum=0; cin>>n; for(;n>0;n--) { sum=sum+1.0/fact(n); } printf("sum=%.5lf",sum); return 0; } 请问哪个测试数据没考虑到呀?