1002. 写出这个数
2015-04-19 17:41
771 查看
#include<iostream> #include<vector> #include<iomanip> #include<string>//g++改为<string.h> using namespace std; int main() { string str; int i = 0; vector<int>numbers; int num; long int sum = 0; cin >> str; int length = strlen(str.c_str()); while (i < length) { num = str[i] - 48; numbers.push_back(num); i++; } int j = numbers.size() - 1; for (; j >= 0; --j) sum += numbers[j]; int summary = sum; vector<int>vec; int val, count = 0; while (sum > 1 || sum == 1) { val = sum % 10; vec.push_back(val); sum = sum / 10; count++; } int p = vec.size() - 1; if (summary % 10 == 0 && summary != 0) { switch (vec[p]) { case 1: cout << "yi"; break; case 2: cout << "er"; break; case 3: cout << "san"; break; case 4: cout << "si"; break; 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 (p != 0) cout << " "; --p; for (int k = 1; k < count; ++k) { cout << "ling"; if (k != count - 1) cout << " "; } return 0; } if (summary == 0) { cout << "ling"; return 0; } j = vec.size() - 1; while (j >= 0) { switch (vec[j]) { case 1: cout << "yi"; break; case 2: cout << "er"; break; case 3: cout << "san"; break; case 4: cout << "si"; break; 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 (j != 0) cout << " "; --j; } system("pause"); return 0; }
93dc
相关文章推荐
- 1002. 写出这个数 (20):睡前一水
- PAT 1002. 写出这个数
- 1002. 写出这个数 (20)
- 1002. 写出这个数 (20)
- 1002. 写出这个数 (20)
- 1002. 写出这个数 (20)
- 1002. 写出这个数 (java)
- 1002. 写出这个数
- [PAT]1002.写出这个数 (20)
- java解决pat乙级练习题1002. 写出这个数
- 1002. 写出这个数 (20)
- 1002. 写出这个数 (20)
- 1002. 写出这个数
- Pat 1002. 写出这个数
- PAT乙级1002. 写出这个数 (20)
- PAT-乙级-1002. 写出这个数 (20)
- PAT-B 1002. 写出这个数
- 1002. 写出这个数 (20)
- PAT 1002. 写出这个数 (20)