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

ACM 入门 1177

程序员文章站 2022-03-03 11:35:30
...

题目描述
求a+aa+aaa+…+aa…a(n个a)的和,其中a是一个1~9之间的数字,
由键盘输出,n表示a的位数,由键盘输出。
如: 2+22+222+2222+22222 ,此时a=2,n=5.
输入 输出a和n的值,以空格分隔。
输出 输出a+aa+aaa+…+aa…a(n个a)的和,末尾换行。
样例输入 2 5
样例输出 24690

做这道题我们先理清楚其思路,这是几个比较简单但又特殊的累加计算
1 先拿2+22+…+22222,作例子,a值为2,循环5次
那这得运用到for循环语句,for(i=0;i<=n-1;i++)
2 那 2+ 22+ 222+ 2222+ 22222如何表示呢
可以看成2+(20+2)+(220+2)+(2220+2)+(22220+2)
由此推断得出下一个算术=上一个乘数*10+a值,这也就可以用Xn=Xn-1+a表示
3 最后再将其相加,则是SUMn=Xn-1+Xn.
知道思路就可以开始敲代码了

#include<stdio.h>
#include<math.h>
int main()
{
    int a,n,i=0,x=0,sum=0;   //定义a,n正整型变量取值,i循环变量,x变量用来计算出每个单数字的值,sum用来计算和
    scanf("%d%d",&a,&n); 
    for(i=0;i<=n-1;i++)      //循环5次
    { 
        x=10*x+a;            //计算出每个单个的数字值
        sum=x+sum;           //求和
    }
    printf("%d",sum);        //输出
    return 0;
}


相关标签: ACM