1.从1~100累加
代码如下:![](https://i-blog.csdnimg.cn/blog_migrate/46498a503fee0a7cefbc1ea4713875bc.png)
解析:
在这里sum=0,i=1;初始化并给sum和i赋值。因为这个程序求的是累加,所以sum为0,如若是求的是累乘,则sum为1;而不论累加累乘,i都是从1开始的,i++,一直加到100。
2.输入n,从1~n累加
代码如下:
解析:
在这里比之前一个程序没多大差别,但是这里用的是for循环,还加了一个n的输入,循环条件也写为i<=n。
3.从1~100累乘
代码如下:
解析:
若用int则为0,因为sum的值太大了,导致无法求解。所以用double。
4.输入n,从1~n累乘
代码如下:
解析:
这里输出的比较小的n值,若输出较大的则数据类型要改变为long,long long或者double。
5.输入n,求1的阶乘加到n的阶乘的和
代码如下:
解析:
输入n,求1的阶乘加到n的阶乘的和就是把累加和累乘组合在一起,在加上一个输入语句,所以这里的i=1,从1经过i++一直到n,而num则相当于累乘中的i,也相当于累加中的项,赋值为1,sum相当于累加中的总值,而不是累加中的总值,所以这里的sum为0,而不是为1。
6.【进阶】计算1-1/2+1/3-1/4+......1/99-1/100的值
代码如下:
解析:
遇到这种求分式的和的程序,通常把分式分为分子和分母和前面的运算符号,先明确分子分母和运算符号随着项数变化的规律,再将分子分母和运算符号按照规律分别求解。如这一道题就是运算符号在奇数项中为正,在偶数项中为负;而分子始终为1,分母逐项递增从1到100。
7.【进阶】水仙花数查找
水仙花数是指各位数字的立方和等于该数本身的三位数。例如,153是水仙花数,因为153=1*1*1+5*5*5+3*3*3。找出所有的水仙花数。
代码如下:
解析:
由题意可知在100~999的水仙花数有四个,这里i%10求得个位数;i/10%10求的是十位数;i/100求的是百位数,水仙花数是将各个位数的的立方加起来,如果加起来的和等于这个数本身,则称这个数是水仙花数。其实十位数还可i/10%10=i%100/10。
8.【进阶】计算pai的近似值(pai是3.14)
利用公式pai/4=1-1/3+1/5-1/7......,编程计算pai的近似值,直到最后一项的绝对值小于10的负四次方10^(-4)为止,输出pai的值并统计累加的项数。
代码如下:
解析:
这一道题也是将分子分母运算符号分开找规律求值,但这道题我们用的是while,因为这一道题有很多需要参与运算的变量,如果用for循环由于for( ; ;fm=fm+2)的话会在最后还要弯弯绕绕,所以建议用while。
下面有这题关于for的使用:
注意:
这里count多了一项,是因为在判断条件的时候是以tx作为判断标准的,而最后一项tx需要在代码块里面进行计算,计算完了才跳出循环进行判断,在循环中之前还多进行了一项tx、pai、sign、count的没必要的计算,导致结果不准确。
改成这样:
解析:
这里是以tx作为判断条件来运行的,在循环里那个为条件,就先把哪个变量写在代码块上端并优先进行判断。
9.【进阶】计算e的近似值
利用公式e=1+1/1!+1/2!+1/3!+1/4!+1/5!+......1/n!,编程计算e的近似值,直到最后一项的绝对值小于十的负五次方10^(-5)时为止,输出e的值并统计累加的项数。
代码如下:
解析:
由于引进了求绝对值的fabs(),所以我们这里还要加上库函数math,这里e也相当于累加,所以设置为0,将分子分母分开来求解,这个程序循环内容比较复杂,所以我们用while。
注意:
在初始浮点型变量时最好不设置为1,而设置为1.0。