題的目標很簡單,就是求兩個正整數a
和b
的和,其中a
和b
都在區間[1,1000]。稍微有點麻煩的是,輸入並不保證是兩個正整數。
輸入在一行給出a
和b
,其間以空格分開。問題是a
和b
不一定是滿足要求的正整數,有時候可能是超出範圍的數字、負數、帶小數點的實數、甚至是一堆亂碼。
注意:我們把輸入**現的第1個空格認為是a
和b
的分隔。題目保證至少存在乙個空格,並且b
不是乙個空字串。
如果輸入的確是兩個正整數,則按格式a + b = 和
輸出。如果某個輸入不合要求,則在相應位置輸出?
,顯然此時和也是?
。
123 456
123 + 456 = 579
22. 18
? + 18 = ?
-100 blabla bla...33
? + ? = ?
注意點:
輸入未必是數字(因此用字元陣列儲存);
可能會有多個空格。
因此字元陣列儲存輸入,並且需要迴圈輸入,以解決多個空格的問題。輸入後判斷輸入了幾次,以及如果輸入個數正確,兩個輸入的字元是否都是符合規範的。
#include
#define inf 0x3f3f3f3f
#define pi acos(-1)
using
namespace std;
typedef
long
long ll;
const
int n =
2e5+9;
const ll mod =
1e9+7;
char str[n]
;intex(
char str)
if(ans /
10>
1000
|| ans /
10==0)
return-1
;return ans /10;
}int
main()
b =ex(str);if
(cnt >1)
if(a ==-1
&& b ==-1
)if(a ==-1
)if(b ==-1
) cout << a <<
" + "
<< b <<
" = "
<< a + b << endl;
return0;
}
L1 025 正整數A B (15 分)
l1 025 正整數a b 15 分 題的目標很簡單,就是求兩個正整數a和b的和,其中a和b都在區間 1,1000 稍微有點麻煩的是,輸入並不保證是兩個正整數。輸入在一行給出a和b,其間以空格分開。問題是a和b不一定是滿足要求的正整數,有時候可能是超出範圍的數字 負數 帶小數點的實數 甚至是一堆亂碼...
L1 025 正整數A B (15 分
題的目標很簡單,就是求兩個正整數a和b的和,其中a和b都在區間 1,1000 稍微有點麻煩的是,輸入並不保證是兩個正整數。輸入格式 輸入在一行給出a和b,其間以空格分開。問題是a和b不一定是滿足要求的正整數,有時候可能是超出範圍的數字 負數 帶小數點的實數 甚至是一堆亂碼。注意 我們把輸入 現的第1...
L1 025 正整數A B (15 分
題的目標很簡單,就是求兩個正整數a和b的和,其中a和b都在區間 1,1000 稍微有點麻煩的是,輸入並不保證是兩個正整數。輸入格式 輸入在一行給出a和b,其間以空格分開。問題是a和b不一定是滿足要求的正整數,有時候可能是超出範圍的數字 負數 帶小數點的實數 甚至是一堆亂碼。注意 我們把輸入 現的第1...