您的位置:首页 > 其它

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: