1005 大數加法
基準時間限制:1 秒 空間限制:131072 kb 分值: 0 難度:基礎題
給出2個大整數a,b,計算a+b的結果。
第1行:大數a
第2行:大數b
(a,b的長度 <= 10000 需注意:a b有可能為負數)
輸出a + b
68932147586
468711654886
537643802472
用c寫的**, 有一組資料一直過不了,,,,,改了好久一直不過,,,,最後沒辦法翻了之前學的python書,用python寫的
#include #include #include #include #include #include #include #include #include #include using namespace std;
typedef long long ll;
const int maxn = (int) 100000 + 10;
char s1[maxn], s2[maxn], s3[maxn];
int ans[maxn], sum[maxn];
int main()
for(int i = len2, j = 0; i > 0; i--, j++)
for(int i = 0; i < maxlen; i++)
}if(ans[maxlen - 1] == 0) maxlen++;
printf("-");
}else//s1為負數,s2為正數
for(int i = len2 - 1, j = 0; i >= 0; i--, j++)
for(int i = 0; i < maxlen; i++)
}if(ans[maxlen - 1] == 0) maxlen--;
for(int i = 1, j = 0; i < len1; i++, j++)
if(len1 > len2) printf("-");
else if(len1 < len2) ;
else if(len1 == len2)}}
else
for(int i = len2, j = 0; i > 0; i--, j++)
for(int i = 0; i < maxlen; i++)
}if(ans[maxlen - 1] == 0) maxlen--;
for(int i = 1, j = 0; i < len2; i++, j++)
if(len1 < len2) printf("-");
else if(len1 > len2) ;
else if(len1 == len2)
}else//同為正數
for(int i = len2 - 1, j = 0; i >= 0; i--, j++)
for(int i = 0; i < maxlen; i++)
}if(ans[maxlen - 1] == 0) maxlen++;}}
for(int i = maxlen - 1; i >= 0; i--)
if(flag)
}for(int i = num; i >= 0; i--)
printf("%d", ans[i]);
}else
printf("\n");
return 0;
}
#python
a = int(input())
b = int(input())
print(a + b)
是不是突然感覺python好厲害啊,c寫了一百多行,它三句話就搞定了。。。。 51Nod 1005 大數加法
今天遇見一道細節問題特別多的題,寫得我眼疼,題本身不難,難得是他的細節問題繁多,需要考慮的情況也甚多,稍有不慎就側漏了,哈哈。題的思路也很清晰,就是將最後的結果的正負的符號分離出來,剩下的就是高精度的加減法了,利用字串處理即可,效率可以很高很高,有多高呢?自己感覺吧!題 給出2個大整數a,b,計算a...
51nod 1005 大數加法
給出2個大整數a,b,計算a b的結果。input 第1行 大數a 第2行 大數b a,b的長度 10000 需注意 a b有可能為負數 output 輸出a binput示例 68932147586 468711654886output示例 537643802472純粹的模擬,主要分一下幾種情況 ...
51nod 1005 大數加法
1005 大數加法 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出2個大整數a,b,計算a b的結果。input 第1行 大數a 第2行 大數b a,b的長度 10000 需注意 a b有可能為負數 output 輸出a binput示例 68932147586 4...