解题思路:
首先题目要求的是阶乘,阶乘也就意味着前一项比后一项多一,由此,使用循环为最佳,
题目最主要是阶乘怎么算,每个阶乘的求和,这是题目的关键,
定义四个变量,i,n,,s,sum;
i控制循环,n为输入的阶乘数,s为中间过度变量,sum为每次的求和值。赋初值s=1;sum=0;
s=s*i;sum=sum+s;为关键代码
还需要加一个判断n是否大于20的条件;
注意事项:
循环变量i的初始值必须为1,否则的话s的值永远为0;
sum在循环体外输出,
参考代码:
# include<stdio.h> int main() { int i,n,sum=0,s=1; scanf("%d",&n); if(n<20) { for(i=1;i<=n;i++) { s=s*i; sum=sum+s; } printf("%d",sum); } return 0; }
0.0分
72 人评分
各位:要求阶乘的数越大,int型的变量就装不下。各位写的时候定义更大一点的变量类型就行。 我只提供了解题思路。
牧yang少女 2022-01-28 11:38:47 |
你解决了困扰我多时的问题,谢谢大佬
#include<stdio.h> int main() { long int sum=0; int n; scanf("%d",&n); int c; for (int i=1;i<=n;i++) { int a=1; for(int k=1;k<=i;k++) { a=a*k; } // printf("%d\n",a); sum=sum+a; } printf("%ld",sum); return 0; } 可不可以问下为什么一直错误50%,,,。
q671383789 2020-02-26 21:20:23 |
c没用上 忘记删掉了,不过整体不影响吧
超爱苦力怕 2021-02-19 19:58:54 |
你这个输入18为什么是负值
牧yang少女 2022-01-28 11:37:52 |
还是不够大溢出了
#include<stdio.h> void main() { int n,i,j; long double Sn=0,s; scanf("%d",&n); if(n<20) { for(i=1;i<=n;i++) { for(j=1,s=1;j<=i;j++) s*=j; Sn+=s; } printf("%.0lf\n",Sn); } } 卑微的问一下哪里有问题
#include<stdio.h> int main(void) { int n; int Sn = 0; int m = 1; scanf("%d", &n); for (int i = 1; i <= n; i++) { m = m * i; Sn= Sn + m; } printf("%d", sum); return 0; } 这是什么评判系统啊,这怎么错了,我真的找不出出来啊
Rain丶Check 2019-10-24 09:10:25 |
把sum改为Sn ,,我刚刚不小心改错了,但还是50%的错误什么鬼
eanc 2019-12-16 21:08:31 |
没有定义i
许某 2020-02-22 11:55:20 |
溢出
云 2020-09-14 17:11:51 |
# include<stdio.h> int main() { int i,n; long long sum=0,s=1; scanf("%d",&n); for(i=1;i<=n;i++) { s=s*i; sum=sum+s; } printf("%lld ",sum); return 0; }
学以致用 2020-10-19 11:28:21 |
当结果过大的时候,int型变量输出就是错的,所以需要用更大的类型定义结果
q12499 2021-03-19 20:48:19 |
输入20,结果溢出
这个都是错的居然还写出来
unomti 2020-02-10 20:42:10 |
日了
20物联网3班刘帅甫 2020-11-30 18:55:29 |
我也是,看了半天yi运行发现是错的,吐了
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:277 |
数组输出 (C语言代码)错误???浏览:558 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1232 |
简单的a+b (C语言代码)浏览:626 |
printf基础练习2 (C语言代码)浏览:746 |
1642题解浏览:706 |
第三届阿里中间件性能挑战赛-总决赛亚军比赛攻略浏览:1144 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:555 |
C二级辅导-分段函数 (C语言代码)浏览:738 |
微醺 2021-11-09 11:33:30 |
阶乘你可百度一下
牧yang少女 2022-01-28 10:39:29 |
高中数学学的阶乘。例如,3!表示3*2*1.其他都一样就是从这个数递减相乘到一。