用C语言求数组Sn的前5项
题目:求Sn = a + aa + aaa + aaaa + aaaaa的前5项之和,其中a是一个数字,
例如:2 + 22 + 222 + 2222 + 22222
#include <stdio.h>//求Sn = a + aa + aaa + aaaa + aaaaa的前5项之和,其中a是一个数字,
//例如:2 + 22 + 222 + 2222 + 22222
int main()
{int a = 0, b = 0, sum = 0;//假设输入2scanf("%d",&a);//a = 2for (int i = 0; i < 5; i++){b = b * 10 +a;//第一次循环:b=2,sum=2;第二次循环:b=22,sum=24;//第三次循环:b=222,sum=246;第四次循环:b=2222,sum=2468;//第五次循环:b=22222,sum=24690;sum += b;}//打印sum(sum=24690):printf("sum = %d\n", sum);return 0;
}
代码分析:
读取一个整数a。
使用循环,每次循环生成一个由a重复i+1次的数(实际上是通过b = b * 10 + a来生成的)。
每次生成的数累加到sum中。
循环5次,即生成5个数并累加。
输出sum。
例如,当a=2时:
第一次循环:b = 0*10+2 = 2, sum=2。
第二次循环:b = 2*10+2 = 22, sum=2+22=24。
第三次循环:b = 22*10+2 = 222, sum=24+222=246。
第四次循环:b = 222*10+2 = 2222, sum=246+2222=2468。
第五次循环:b = 2222*10+2 = 22222, sum=2468+22222=24690。
所以,输入2,输出应为24690。