简单的大数模拟
不能用int数组,否则一定会超时,不管G还是C,所以这里考查的就是字符串的输出了,puts比一个个输出快。
#include<cstdio> #include<cstring> using namespace std; //水题,直接模拟大数加法就好了 char ans[1000005]; int main() { int num1,num2,n; scanf("%d",&n);//n不一定是个位数,getchar()只能获取一个字符 getchar(); for(int i = 0; i<n; ++i) { num1 = getchar()-'0'; getchar(); num2 = getchar()-'0'; getchar(); ans[i] = num1+num2+'0'; } for(int i = n-1; i>=1; --i) { if(ans[i]>'9') { ans[i-1]++; ans[i]-=10; } } if(ans[0]>'9') { putchar('1'); ans[0]-=10; } puts(ans); /* for(int i = 0; i<n; ++i) putchar(ans[i]); putchar('\n'); *这样慢400ms */ return 0; }