用C语言求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
程序员文章站
2022-07-13 13:57:34
...
问题:求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字。
思路:用for循环遍历一遍,先求出每位加数,再将所有的加数累加起来。
代码实现功能:用户输入一个数字a,先判断是否处于0~9之间,若是一个非零的个位数,则按公式计算,若大于9,则输出“输入有误,请重新输入”的提示信息,连续输入合理的数字a可以一直计算,直到输入数字为0,跳出程序,至此程序结束。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//封装一个函数func()实现Sn=a+aa+aaa+aaaa+aaaaa
int func(int a) {
int sn = 0;
int tmp = 0;
for (int i = 0; i < 5; ++i) {
tmp += a*pow(10, i);
sn += tmp;
}
return sn;
}
int main() {
int a;
int sn;
int tmp = 0;
printf("请输入一个0~9之间的整数a:\n");
printf("输入0时退出程序\n");
while (1) {
//输入有效则一直执行计算
if (scanf("%d", &a)) {
//判断输入是否合理,合理则计算,否则跳出本次循环
if (a > 0 && a < 10) {
sn= func(a);
printf("sn=a+aa+aaa+aaaa+aaaaa=%d\n", sn);
}
else if (a == 0) {
break;
}
else if(a>9) {
printf("输入错误,请重新输入\n"); continue;
}
}
}
运行效果: