用C语言求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字

问题:求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;     
                         }
        }
}

运行效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/swag_wg/article/details/88774973