讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10^100。
輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。
輸入樣例:
輸出樣例:yi san wu
1.以字元陣列的形式讀入給出的自然數n,並用strlen函式獲取n的長度。且因為n<10^100,字元陣列最小為10^101
char
str[110];
gets(str);
int len = strlen(str);
之後列舉字元陣列每一位,將字元對應的數字進行累加
for (int i = 0; isum += str[i] - '0'; //將每一位累加
}
將sum每一位壓入堆疊中,並用計數器cnt計數
呼叫num_to_string函式按格式輸出
version1.0(num_to_string函式版)
/**
* @tag pat_b_1002
* @date 2016-07-17 15:53:16-16:45
* @version 1.0
* @language c++
* @ranking 35/7667
*/#include
#include
#include
#include
using
namespace
std;
string num_to_string(int n)
else
if (n == 2)
else
if (n == 3)
else
if (n == 4)
else
if (n == 5)
else
if (n == 6)
return
"liu";
else
if (n == 7)
return
"qi";
else
if (n == 8)
return
"ba";
else
if (n == 9)
return
"jiu";
else
return
"error";
}int sum;
int cnt;
int main()
cout
<< num_to_string(sum);
for (int i = 0; i < cnt; i++)
return
0;}
version2.0(二維陣列版,摘自晴神演算法筆記)#include
#include
char
str[110];
int main()
int num = 0, ans[10]; //num表示sum的位數
while (sum != 0)
//將sum的每一位存到ans陣列中,sum的低位存到ans的低位
/*進行數字和字串的轉換*/
char change[10][5] = ;
for (int i = num - 1; i >= 0; i--)
return
0;}
1.數字和字元之間的轉化可以考慮用二維陣列來存,更簡單
char change[10][5] = ;
之後輸出要注意:
for (int i = num - 1; i >= 0; i--)
vs2015採用新標準,其中的gets函式要換成gets_s函式
gets_s(str);
PAT 乙級 1002 寫出這個數
讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098765...
PAT 乙級 1002 寫出這個數
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行...
Pat乙級1002 寫出這個數
題目 讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098...