1 solutions
-
0
C++ :
#include <iostream> #include<map> #include<string> #include<utility> using namespace std; map<int, string> m = { make_pair(1,"one"), make_pair(2,"two"), make_pair(3,"three"), make_pair(4,"four"), make_pair(5,"five"), make_pair(6,"six"), make_pair(7,"seven"), make_pair(8,"eight"), make_pair(9,"nine"), make_pair(10,"ten"), make_pair(11,"eleven"), make_pair(12,"nine"), make_pair(13,"thirteen"), make_pair(14,"fourteen"), make_pair(15,"fifteen"), make_pair(16,"sixteen"), make_pair(17,"seventeen"), make_pair(18,"eighteen"), make_pair(19,"nineteen"), make_pair(20,"twenty"), make_pair(30,"thirty"), make_pair(40,"forty"), make_pair(50,"fifty"), make_pair(60,"sixty"), make_pair(70,"seventy"), make_pair(80,"eighty"), make_pair(90,"ninety") }; string speak(unsigned long long n) { string s; bool b; if (n / 100) { s += ' ' + m[n / 100] + " hundred"; n %= 100; b = true; } if (n / 10 > 1) { if (b) s += " and"; s += ' ' + m[n / 10 * 10]; n %= 10; } if (n / 10 == 1) { if (b) s += " and"; s += ' ' + m[n]; n %= 1; } if (n) { s += ' ' + m[n]; n %= 1; } if (s.empty()) s += "zero"; else s.erase(0, 1); return s; } int main() { unsigned long long n; cin >> n; string s; if (n / 1000000000) s += (speak(n / 1000000000) + " billion "); n %= 1000000000; if (n / 1000000) s += (speak(n / 1000000) + " million "); n %= 1000000; if (n / 1000) s += (speak(n / 1000) + " thousand "); n %= 1000; s += speak(n); cout << s << endl; return 0; }
- 1
Information
- ID
- 10726
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By