題目:輸入一串正整數字元,各正整數之間用空格分開,只有數字字元和空格有效,其他字元均為無效;
輸入正整數個數不超過32個(即:正整數個數<=32)。
若出現無效字元,輸出error;若輸入正整數個數超過32個,輸出error。
若有效,則求出總和;
例子:輸入:12 a34 輸出:error
輸入:12 34 輸出:46
分析:先用getline將正行字串讀入(不包括末尾換行符『\n』),然後再逐個字元判斷是否有效,若有效則相加,若相加個數超出32個,則無效。
下列程式未考慮輸入字串位數太多導致相加和溢位的問題。
程式:
#include #include using namespace std;
int main()
else if(str[i]==' '||str[i]=='\0')
}else
}if(!invalid)
cout << result;
system("pause");//按任意鍵繼續...
return 0;
}
華為機試題 整數減法
include using namespace std 3 正數減法 問題描述 兩個任意長度的正數相減,這兩個正數可以帶小數點,也可以是整數,請輸出結果。輸入的字串中,不會出現除了數字與小數點以外的其它字元,不會出現多個小數點以及小數點在第乙個字元的位置等非法情況,所以考生的程式中無須考慮輸入的數值...
華為面試題之大整數相加
問題描述 在計算機中,由於處理器位寬限制,只能處理有限精度的十進位制整數加減法,比如在32位寬處理器計算機中,參與運算的運算元和結果必須在 231 231 1之間。如果需要進行更大範圍的十進位制整數加法,需要使用特殊的方式實現,比如使用字串儲存運算元和結果,採取逐位運算的方式。如下 98765432...
華為機試題練習(一)
1.寫出乙個程式,接受乙個由字母和數字組成的字串,和乙個字元,然後輸出輸入字串中含有該字元的個數。不區分大小寫。var str readline tolowercase var item readline tolowercase var count 0 for var i 0 i str.lengt...