POJ 2602(数论)
题意:其实就是两个大数相加的和。
解题思路:由于输入方式不同,而位数N<=1000,000;所以很容易TLE,刚开始我定义了两个整型数组存放这两个大数,可是超时,后来查阅资料,发现开辟一个字符数组,在输入的过程中处理数据,就可以AC了。
View Code
1 #include <stdio.h>
2 int main()
3 {
4 char a[1000002]={'0'};
5 int n,i;
6 int x,y;
7 scanf("%d",&n);
8 for(i=0;i<n;i++)
9 {
10 scanf("%d%d",&x,&y);
11 a[i]=x+y+'0';
12 }
13 for(i=n-1;i>=0;i--)
14 {
15 if(a[i]>'9'){
16 a[i]=a[i]-10;
17 a[i-1]=a[i-1]+1;
18 }
19 }
20 printf("%s\n",a);
21 return 0;
22 }
2 int main()
3 {
4 char a[1000002]={'0'};
5 int n,i;
6 int x,y;
7 scanf("%d",&n);
8 for(i=0;i<n;i++)
9 {
10 scanf("%d%d",&x,&y);
11 a[i]=x+y+'0';
12 }
13 for(i=n-1;i>=0;i--)
14 {
15 if(a[i]>'9'){
16 a[i]=a[i]-10;
17 a[i-1]=a[i-1]+1;
18 }
19 }
20 printf("%s\n",a);
21 return 0;
22 }