基础编程题目集 - 7-38 数列求和-加强版(20 分)

题目链接:点击打开链接


题目大意:


解题思路:


AC 代码

#include
#include

#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;
}

你可能感兴趣的:(#,ACM,#,PTA,#,技巧题集)