解题思路以及注意事项:
定义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分
32 人评分
# include <stdio.h> int main () {double fact(int k); int n; scanf("%d",&n); fact(n); } double fact(int k) { int i,a=1; double sum=0; for(i=1;i<=k;i++) { sum+=1.0/a; a=a*(i+1); } printf("sum=%.5f",sum); return (sum); } 哪错了,,,
``` #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; } 哪错了?????
yxhctsw 2020-06-12 23:58:18 |
肯定是错的,数据溢出,将 主函数中的int sum=0改成double类型
#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,都是对的
Nvemiy 2021-11-13 14:43:05 |
返回值类型是double,所以你factorial应该定义为double
#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; } 请问哪个测试数据没考虑到呀?
点我有惊喜!你懂得!浏览:1166 |
C语言训练-自守数问题 (C语言代码) long long浏览:1106 |
小九九 (C语言代码)浏览:885 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1091 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:932 |
A+B for Input-Output Practice (VI) (C++代码)浏览:445 |
模拟计算器 (C++代码)浏览:885 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:954 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:755 |
yxhctsw 2020-06-12 23:55:20 |
我知道我和有些人为啥错了,用来存储分母阶乘的数值必须为double类型,不然会溢出,输入100就可以发现了。
yxhctsw 2020-06-12 23:55:53 |
这题我将int a=1改成 double a=1就对了
042213237 2020-06-27 11:05:54 |
n不能>33