解题思路:
题目:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。
若n = 4 , Sn= 2 +22 + 222 +2222 = 2468
我们可由上式发现如下规律:(以n = 4为例)
2 +
22 +
222 +
2222 = Sn
n=4时,我们个位的一整列来看,个位有4个2,十位有3个2,百位有2个2……,个位相加得结果为2 * 4 = 8,十位结果为2 * (4 - 1) = 6,百位结果为2 * (4 - 2) = 4……,我们可以试着加一下,Sn = 8 + 60 + 400 + 2000 = 2468,每一项(代码中用item表示)通式为:2 * n * pow(10, i)。
注意事项:
1、首先确定n的值,然后for循环n次就可以了。
2、i的范围不能随着n的变化的改变而改变,要有一个固定值range。
参考代码:
#include#includeint main() { int n = 0, Sn = 0, item = 0; //Sn是指求和符号,item是指每一项的数值 scanf("%d", &n); int range = n; //由于下面for循环语句中有n--是不断变化的,需要一个固定范围range来决定i的遍历次数 for(int i = 0; i < range; i ++) { item = 2 * n * pow(10, i); Sn += item; n --; } printf("%d", Sn); return 0 ; }
0.0分
1 人评分