1. 程式人生 > >7-38 數列求和-加強版(20 分)

7-38 數列求和-加強版(20 分)

題目大意:

解題思路:

AC 程式碼

#include<bits/stdc++.h>
#include<cmath>

#define mem(a,b) memset(a,b,sizeof a)
#define INF 0x3f3f3f3f

using namespace std;

typedef long long ll;

int num[200000];

int main()
{
    int a,n;
    while(~scanf("%d%d",&a,&n))
    {
        if(n==0)
        {
            puts("0"); continue;
        }

        mem(num,0);

        // i.e. a=2,n=3 --> 222 + 22 + 2 --> 個位to最高位:3*2 2*2 1*2
        int ans,tmp=0,k=0;
        for(int i=n; i>=1; i--)
        {
            ans=a*i+tmp;
            tmp=ans/10;
            num[k++]=ans%10;
        }

        if(tmp>0) num[k++]=tmp;

        for(int i=k-1; i>=0; i--) printf("%d",num[i]);
        puts("");
    }

    return 0;
}