因為只要 > 2147483647 就算超出
所以我沒做大數運算,而是輸入2字串 a, b 判斷 (長度 >10) 或 (長度10且第1位>2) 則 true
false 則將 a,b 轉成 unsigned 或 long long 的整數
用 long long c = a*b 或 a+b {若a,b皆<=2147483647 } ,再判斷 c 是否 > 2147483647
但小心:若 a=0 或 b=0 且是 * ,則 c=0
因為只要 > 2147483647 就算超出
所以我沒做大數運算,而是輸入2字串 a, b 判斷 (長度 >10) 或 (長度10且第1位>2) 則 true
false 則將 a,b 轉成 unsigned 或 long long 的整數
用 long long c = a*b 或 a+b {若a,b皆<=2147483647 } ,再判斷 c 是否 > 2147483647
但小心:若 a=0 或 b=0 且是 * ,則 c=0
你的方法很好,除了 (長度10且第1位>2) 則 true這邊不OK ,2000000000會被你誤判
因為只要 > 2147483647 就算超出
所以我沒做大數運算,而是輸入2字串 a, b 判斷 (長度 >10) 或 (長度10且第1位>2) 則 true
false 則將 a,b 轉成 unsigned 或 long long 的整數
用 long long c = a*b 或 a+b {若a,b皆<=2147483647 } ,再判斷 c 是否 > 2147483647
但小心:若 a=0 或 b=0 且是 * ,則 c=0
你的方法很好,除了 (長度10且第1位>2) 則 true這邊不OK ,2000000000會被你誤判
2500000000
所以他在後面有將 a,b 轉成 long long 去判斷是否皆 <= 2147483647
若 a,b <= 2147483647 才進行運算這樣並沒有問題唷~