HDOJ1002:Wrong Answer
2008-12-31 10:26
302 查看
据说杭电acm的题目是比较简单的。可是为什么Pro 1002提交总是Wrong Answer呢?代码如下:百思不得其解。先留着,以后回来再看。
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=1002
#include<iostream>
using namespace std;
const int length = 1000;
void printArray(int *array, int l)
{
int isZero = true;
for(int temp = 0; temp < l; temp ++)
{
if(array[temp] == 0)
isZero *= 1;
else
isZero *= 0;
if(!isZero)
{
for(int i = temp; i < l; i ++)
cout << array[i];
break;
}
}
}
int main()
{
int a[length];
int al;
int b[length];
int bl;
int sum[length];
int line;
int sl;
char c;
cin >> line;
c = cin.get();
for(int k = 0; k < line; k ++)
{
int i = 0;
int j = 0;
while(1)
{
c = cin.get();
if((c != '\n') && (c != ' '))
a[i ++] = int(c) - int('0');
else
break;
}
while(1)
{
c = cin.get();
if((c != '\n') && (c != ' '))
b[j ++] = int(c) - int('0');
else
break;
}
al = i;
bl = j;
for(int k = 0; k <length; k ++)
sum[k] = 0;
sl = i>j ? i : j;
int tag = 0;
for(int k = sl; k >= 0; k --)
{
if(i > 0 && j > 0)
{
sum[k] = sum[k] + a[-- i] + b[-- j] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
else if(i <= 0 && j > 0)
{
sum[k] = sum[k] + b[-- j] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
else if( i > 0 && j <= 0)
{
sum[k] = sum[k] + a[-- i] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
else
{
sum[k] = sum[k] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
}
cout << "Case " << (k + 1) << ":" << endl;
printArray(a, al);
cout << " + ";
printArray(b, bl);
cout << " = ";
printArray(sum, sl+1);
cout << endl << endl;
}
return 0;
}
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=1002
#include<iostream>
using namespace std;
const int length = 1000;
void printArray(int *array, int l)
{
int isZero = true;
for(int temp = 0; temp < l; temp ++)
{
if(array[temp] == 0)
isZero *= 1;
else
isZero *= 0;
if(!isZero)
{
for(int i = temp; i < l; i ++)
cout << array[i];
break;
}
}
}
int main()
{
int a[length];
int al;
int b[length];
int bl;
int sum[length];
int line;
int sl;
char c;
cin >> line;
c = cin.get();
for(int k = 0; k < line; k ++)
{
int i = 0;
int j = 0;
while(1)
{
c = cin.get();
if((c != '\n') && (c != ' '))
a[i ++] = int(c) - int('0');
else
break;
}
while(1)
{
c = cin.get();
if((c != '\n') && (c != ' '))
b[j ++] = int(c) - int('0');
else
break;
}
al = i;
bl = j;
for(int k = 0; k <length; k ++)
sum[k] = 0;
sl = i>j ? i : j;
int tag = 0;
for(int k = sl; k >= 0; k --)
{
if(i > 0 && j > 0)
{
sum[k] = sum[k] + a[-- i] + b[-- j] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
else if(i <= 0 && j > 0)
{
sum[k] = sum[k] + b[-- j] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
else if( i > 0 && j <= 0)
{
sum[k] = sum[k] + a[-- i] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
else
{
sum[k] = sum[k] + tag;
tag = sum[k] / 10;
sum[k] %= 10;
}
}
cout << "Case " << (k + 1) << ":" << endl;
printArray(a, al);
cout << " + ";
printArray(b, bl);
cout << " = ";
printArray(sum, sl+1);
cout << endl << endl;
}
return 0;
}
相关文章推荐
- hdoj1002大数
- hdoj1002
- HDOJ 1002:sort
- hdoj 1002 A + B Problem II 高精度 java
- hdoj1002大数a+b!!!
- HDOJ 1002 A + B Problem II //高精度加法
- HDOJ1002
- hdoj1002
- hdoj1002
- 大数 A + B 【杭电-HDOJ-1002】 附题
- hdoj1002(大数相加)
- HDOJ1002(大数相加)
- HDOJ1002大数相加
- HDOJ1002 A+B Problem II(高精度/大整数加法)
- java练习第二天hdoj1002-A + B Problem II【大数】
- hdoj1002解法
- HDOJ 1002.A+B Problem II 答案
- 【BC#24 1002 HDOJ 5273】Dylans loves sequence
- Num 11 : HDOJ: 题目1002 : A+B ( 大数问题 )
- hdoj1002 A + B Problem II