L1-007 念数字 (10 point(s))
-
求基除余法可能会多写一个函数,所以直接读取字符的方法比较好。
如果是读取字符串的话,需要消去开头的负号再遍历,不然会有问题。
-
如果不用字符串的方式也可以用读取字符的方法。这样不需要对字符串遍历,更简便。
#include <bits/stdc++.h>
using namespace std;
int main(){
int first = 0;
char c;
string Ping[10]{"ling", "yi", "er", "san", "si",
"wu", "liu", "qi", "ba", "jiu"};
while(cin >> c){
// 如果数字为负数 输出fu 并令first++ 令后面开始打印空格
if(c == '-'){
cout << "fu";
first++;
}
else cout << (first++ ? " " : "") << Ping[c - '0'];
}
}
#include <bits/stdc++.h>
using namespace std;
int main(){
int first = 0;
string str, Ping[10]{"ling", "yi", "er", "san", "si",
"wu", "liu", "qi", "ba", "jiu"};
cin >> str;
// 如果数字为负数 输出fu 并令first++ 令后面开始打印空格
if(stoi(str) < 0){
cout << "fu";
first++;
// 消去负号
str = to_string(abs(stoi(str)));
}
// 遍历字符串将字符转换为数字输出
for(auto s: str)
cout << (first++ ? " " : "") << Ping[s - '0'];
}
浙公网安备 33010602011771号