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;//别刷水题了 }