洛谷P6745 『MdOI R3』Number 题解

Solution

这个题没啥好说的,一道裸的高精加

如果说你不会高精的话,其实会点数学稍微思考下也会做了,

想学高精可以去做一做洛谷1601;

好吧,这么水的题,代码:

#include<bits/stdc++.h>
using namespace std;
string x;
int k,len;
int a[100000+15];
int main()
{
    scanf("%d",&k);//k是指10的k次方
    cin>>x;
    for(int i=x.length()-1;i>=0;i--)
        a[++len]=x[i]-'0';//转化成数字
    a[k+1]++;//注意这里是自加+1,别想当然以为就是1(如果这一位本身就有数字的话)
    len=max(len,k+1);
    for(int i=1;i<=len;i++)
    {
        if(a[i]>=10){
            a[i+1]++;
            a[i]=a[i]%10;//处理进位
        }
    }
    if(a[len+1]) len++;//处理最高位
    for(int i=len;i>=1;i--)
    {
        printf("%d",a[i]);
    }
    return 0;//别刷水题了
}
原文地址:https://www.cnblogs.com/yjyl0098/p/13566438.html