pat乙級真題1002_寫出這個數
阿新 • • 發佈:2018-12-12
題目:讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:
每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10100。
輸出格式:
在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空格。
輸入樣例:
1234567890987654321123456789
輸出樣例 :
yi san wu
當輸入的數大於int的儲存範圍時,要用char進行儲存
程式碼:
#include <iostream> #include <string> #include <string.h> using namespace std; int main(int argc, const char * argv[]) { char a[10000]; cin >> a; char b[10000]; int sum = 0; int length_a = strlen(a); for(int i=0;i<length_a;i++){ a[i]=a[i]-'0'; sum=sum+a[i]; } for(int i=0;sum!=0;i++){ b[i]=sum%10; sum=sum/10; } int length_b = strlen(b); for(int i=length_b-1;i>=0;i--){ switch(b[i]){ case 0 :cout<<"ling";break; case 1 :cout<<"yi";break; case 2 :cout<<"er";break; case 3 :cout<<"san";break; case 4 :cout<<"si";break; case 5 :cout<<"wu";break; case 6 :cout<<"liu";break; case 7 :cout<<"qi";break; case 8 :cout<<"ba";break; case 9 :cout<<"jiu";break; } if(i>0) cout<<" "; } return 0; }
19分,還1分不知道扣在哪。
測試點 | 結果 | 耗時 | 記憶體 |
---|---|---|---|
0 | 答案正確 | 3 ms | 512KB |
1 | 答案錯誤 | 3 ms | 512KB |
2 | 答案正確 | 2 ms | 384KB |
3 | 答案正確 | 3 ms | 384KB |
4 | 答案正確 | 3 ms | 384KB |
5 | 答案正確 | 2 ms | 512KB |