Advertisement
Spocoman

04. Print Name of Numbers

Oct 27th, 2023 (edited)
495
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. string unitsPrint(int n) {
  6.     return
  7.         (n == 1 ? "one" :
  8.             n == 2 ? "two" :
  9.             n == 3 ? "three" :
  10.             n == 4 ? "four" :
  11.             n == 5 ? "five" :
  12.             n == 6 ? "six" :
  13.             n == 7 ? "seven" :
  14.             n == 8 ? "eight" :
  15.             n == 9 ? "nine" : "");
  16. }
  17.  
  18. string tensPrint(int t, int u) {
  19.     string result =
  20.         t == 1 ? (
  21.             u == 0 ? "ten" :
  22.             u == 1 ? "eleven" :
  23.             u == 2 ? "twelve" :
  24.             u == 3 ? "thirteen" :
  25.             u == 4 ? "fourteen" :
  26.             u == 5 ? "fifteen" :
  27.             u == 6 ? "sixteen" :
  28.             u == 7 ? "seventeen" :
  29.             u == 8 ? "eighteen" :
  30.             "nineteen"
  31.             ) :
  32.         t == 2 ? "twenty" :
  33.         t == 3 ? "thirty" :
  34.         t == 4 ? "forty" :
  35.         t == 5 ? "fifty" :
  36.         t == 6 ? "sixty" :
  37.         t == 7 ? "seventy" :
  38.         t == 8 ? "eighty" :
  39.         t == 9 ? "ninety" : "";
  40.  
  41.     return (t > 0 ? result + " " : "");
  42. }
  43.  
  44. string hundredsPrint(int n) {
  45.     return (n > 0 ? unitsPrint(n) + " hundred " : "");
  46. }
  47.  
  48. string thousandsPrint(int n) {
  49.     return (n > 0 ? unitsPrint(n) + " thousand " : "");
  50. }
  51.  
  52. int main() {
  53.     string n;
  54.     cin >> n;
  55.  
  56.     n = "000" + n;
  57.  
  58.     int thousands = int(n[n.length() - 4]) - 48;
  59.     int hundreds = int(n[n.length() - 3]) - 48;
  60.     int tens = int(n[n.length() - 2]) - 48;
  61.     int units = int(n[n.length() - 1]) - 48;
  62.  
  63.     cout << (thousands + hundreds + tens + units != 0
  64.         ? thousandsPrint(thousands) + hundredsPrint(hundreds) + tensPrint(tens, units) + (tens != 1 ? unitsPrint(units) : "")
  65.         : "zero") << endl;
  66.  
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement