poj2602 大数加法 G++64ms,C++1469ms
简单的大数模拟
不能用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;
}