大数a+aa+aaa+......(多实例)

大数a+aa+aaa+…(多实例)

题目描述
有这样一个数列
2,22,222,2222,22222,…
很明显, 该数列的每一项都比其前一项多一位数字
所以,通用的来说, 如果这个数列的首项为a(1≤a≤9),那么他的前n项和为多少呢,注意,n的取值范围为1≤n≤1000

输入
第一行为一个整数T,表示有T组数据
接下来T行, 每行有两个整数首项a , (1≤a≤9) 以及项数n , 1≤n≤1000

输出
对于输入的每一个a和n,输出其对应的前n项和S
样例输入
2
2 5
3 10
样例输出
24690
3703703700

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,j,a,b,ans[1005];
    scanf("%d",&n);
    while(n--)
    {
        memset(ans,0,sizeof(ans));
       scanf("%d%d",&a,&b);
       j=0;
        for(i=1;i<=b;i++)
        {lu
            ans[i]=a*(b-j)+ans[i];//主要是运用到了乘法分配。最好试一下,就可以明白了
            ans[i+1]=ans[i]/10;//超9进位
            ans[i]=ans[i]%10;
            j++;
        }
        b+=100;
        int f=0;
        for(b;b>0;b--)
        {
            if(ans[b]!=0)
              f=1;
            if(f==1)
                printf("%d",ans[b]);
        }
        printf("\n");
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值