ACM 入门 1177

题目描述
求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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值