求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

程序分析:关键是计算出每一项的值。

#include<stdio.h>
int main(){
    int a,n,s,t;
    s=0;                       //当前总和
    printf("请输入数据及数据个数: "); 
    scanf("%d,%d",&a,&n);
    t=a;                      //将a赋给t

    while(n>0)
    {
        s=s+t;             
        a=a*10;                
        t=t+a;               //t作为每一次的临时值与S相加
        n--; 
    }
    printf("%d",s);
}

 

例如:a=2,n=3;

t=a=2;

n>0

s=s+t=0+2=2;                  s=s+t=2+22=24;            s=s+t=24+222=246;

a=a*10=2*10=20;           a=a*10=20*10=200;       a=a*10=200*10=2000;

t=t+a=2+20=22;           t=t+a=22+200=222;        t=t+a=222+2000=2222;

n=2;                                n=1;                                 n=0;跳出循环

posted @ 2019-07-21 19:57  acehm  阅读(1153)  评论(0编辑  收藏  举报