欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用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;     
                         }
        }
}

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