2126: 計算

湯米先生發表於2020-12-11

2126: 計算

1.描述

有這樣一個數列
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

2.程式碼

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int x,i,j,m,n,s[1001];
    scanf("%d",&x);
    while(x--)
    {
        memset(s,0,sizeof(s));
       scanf("%d%d",&m,&n);
       j=0;
        for(i=1;i<=n;i++)
        {
            s[i]=m*(n-j)+s[i];
            s[i+1]=s[i]/10;
            s[i]=s[i]%10;
            j++;
        }
        n+=100;
        int f=0;
        for(;n>0;n--)
        {
            if(s[n]!=0)
              f=1;
            if(f==1)
                printf("%d",s[n]);
        }
        printf("\n");
    }
    return 0;
}

相關文章