阶乘的几种表示方法及其拓展
2017-12-04 19:39
204 查看
(a)读入一个非负整数,计算并打印阶乘。错解:#include int main(){int x,i; //输入一个整数,计数//scanf("%d",&x);for(i=1;i<=x;i++)x*=(x-1);printf("%d",x);return 0;}自以为天衣无缝,实则白痴一个比如我。1. 第一次执行完以后:x=5*(5-1)=20 i=2 没错,但是x变成20了啊啊啊啊!!!你编程序的时候进入第二次循环时脑子里还天真的以为x还是那个 x-1 后的4。2. 随着运算的进行,for语句你的x也会跟着变化啊!!!无止境了啊啊啊啊!!!(这个错误我栽了两次。)
所以,这个“x-1”递减得另用一个变量来实现,这样递减的因数就与我们想得到的结果x互不干扰了。正解:1.自己的想法。#includeint main(){int x,i,y,n; //输入一个整数, 计数,递减的因数,限定循环次数//scanf("%d",&x);n=x;y=x;for(i=1;i<=n-1;i++,y--)//由于x一上来就是输入值,所以省了一次:n-1//x*=(y-1);//也可另设置一个积answer=1;这样for语句里就是 i<=x; //printf("%d",x);return 0;}//while循环也可//
2.网友的想法。(感觉思路更好)#includeint main(){int n,fact=1,i; //输入一个整数,结果,循环计数//scanf("%d",&n);for(i=1;i<=n;i++)fact*=i;printf("fact=%d\n",fact);return 0;}它不是向定式思维一样因数递减然后乘以结果,他是用我们输入的数限定循环次数,从1开始递增累乘到我们输入的数,妙哉!
(b)求阶乘之和。#includeint main(){int i,j,n;long term, sum = 0;printf("Input n:");scanf("%d",&n);for(i=1;i<=n;i++){term=1;for(j=1; j<=i; j++)term*=j;sum+=term;}printf("1!+2!+...+%d!=\n",n,sum);return 0;}
所以,这个“x-1”递减得另用一个变量来实现,这样递减的因数就与我们想得到的结果x互不干扰了。正解:1.自己的想法。#includeint main(){int x,i,y,n; //输入一个整数, 计数,递减的因数,限定循环次数//scanf("%d",&x);n=x;y=x;for(i=1;i<=n-1;i++,y--)//由于x一上来就是输入值,所以省了一次:n-1//x*=(y-1);//也可另设置一个积answer=1;这样for语句里就是 i<=x; //printf("%d",x);return 0;}//while循环也可//
2.网友的想法。(感觉思路更好)#includeint main(){int n,fact=1,i; //输入一个整数,结果,循环计数//scanf("%d",&n);for(i=1;i<=n;i++)fact*=i;printf("fact=%d\n",fact);return 0;}它不是向定式思维一样因数递减然后乘以结果,他是用我们输入的数限定循环次数,从1开始递增累乘到我们输入的数,妙哉!
(b)求阶乘之和。#includeint main(){int i,j,n;long term, sum = 0;printf("Input n:");scanf("%d",&n);for(i=1;i<=n;i++){term=1;for(j=1; j<=i; j++)term*=j;sum+=term;}printf("1!+2!+...+%d!=\n",n,sum);return 0;}
相关文章推荐
- C++中字符串的几种表示方法及其深入理解
- 工程项目需求获取的几种方法及其适用环境
- 获取数据 几种表示方法
- 信号频谱的几种表示方式及其关系
- 几种获取操作系统语言的方法及其相似点与不同点
- 素数判断的几种方法代码实现及其复杂度分析
- Java遍历List的几种方法及其性能比较
- Ruby中将代码块作为参数传入方法的几种方法及其区别
- 编程中,表示颜色的几种常见方法
- C++ 图的几种表示方法解析
- SilverLight跨域访问及其常用的几种解决方法
- 【转摘】SilverLight跨域访问及其常用的几种解决方法
- JAVA多线程编程的几种表示方法
- 回顾基础知识——实现阶乘计算的几种方法
- SilverLight跨域访问及其常用的几种解决方法
- VC中用到的几种调试输出TRACE的方法及其区别
- Spring 获取 request 的几种方法及其线程安全性分析
- python学习——计算阶乘的几种方法
- 树和森林的几种表示方法