Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- /*Write a program that converts a number in the range [0…999] to words,
- * corresponding to the English pronunciation. Examples:
- * numbers number as words
- * 0 Zero
- * 9 Nine
- * 10 Ten
- * 12 Twelve
- * 19 Nineteen
- * 25 Twenty five
- * 98 Ninety eight
- * 273 Two hundred and seventy three
- * 400 Four hundred
- * 501 Five hundred and one
- * 617 Six hundred and seventeen
- * 711 Seven hundred and eleven
- * 999 Nine hundred and ninety nine */
- class NumberAsWords
- {
- static void Main()
- {
- int numberA = 0;
- Console.WriteLine("Enter an integer between 0 and 999:");
- do
- {
- if (int.TryParse(Console.ReadLine(), out numberA) && (numberA >= 0) && (numberA <= 999))
- {
- break;
- }
- else
- {
- Console.WriteLine("You have entered an invalid data!");
- }
- } while (true);
- int firstDigit = numberA / 100; //gets first digit of nuber
- int secondDigit = (numberA / 10) % 10;//gets second digit of nuber
- int thirdDigit = numberA - (firstDigit * 100) - (secondDigit * 10); //gets third digit of nuber
- string firstDigitString = "";
- string secondDigitString = "";
- string thirdDigitString = "";
- string caseThereIslessThan20 = "";
- switch (firstDigit) //geting string for the first digit
- {
- case 0: firstDigitString = ""; break;
- case 1: firstDigitString = "One hundred"; break;
- case 2: firstDigitString = "Two hundred"; break;
- case 3: firstDigitString = "Three hundred"; break;
- case 4: firstDigitString = "Four hundred"; break;
- case 5: firstDigitString = "Five hundred"; break;
- case 6: firstDigitString = "Six hundred"; break;
- case 7: firstDigitString = "Seven hundred"; break;
- case 8: firstDigitString = "Eight hundred"; break;
- case 9: firstDigitString = "Nine hundred"; break;
- default: Console.WriteLine("Error occurred!"); break;
- }
- switch (secondDigit) //geting string for the second digit
- {
- case 0: secondDigitString = ""; break;
- case 1: secondDigitString = "Ten"; break;
- case 2: secondDigitString = "Twenty"; break;
- case 3: secondDigitString = "Thirty"; break;
- case 4: secondDigitString = "Fourty"; break;
- case 5: secondDigitString = "Fifty"; break;
- case 6: secondDigitString = "Sixty"; break;
- case 7: secondDigitString = "Seventy"; break;
- case 8: secondDigitString = "Eighty"; break;
- case 9: secondDigitString = "Ninety"; break;
- default: Console.WriteLine("Errorr occurred!"); break;
- }
- switch (thirdDigit) //geting string for the third digit
- {
- case 0: thirdDigitString = ""; break;
- case 1: thirdDigitString = "One"; break;
- case 2: thirdDigitString = "Two"; break;
- case 3: thirdDigitString = "Three"; break;
- case 4: thirdDigitString = "Four"; break;
- case 5: thirdDigitString = "Five"; break;
- case 6: thirdDigitString = "Six"; break;
- case 7: thirdDigitString = "Seven"; break;
- case 8: thirdDigitString = "Eight"; break;
- case 9: thirdDigitString = "Nine"; break;
- default: Console.WriteLine("Errorr occurred!"); break;
- }
- if (secondDigit < 2) //chaks if there is 20 and less in number
- {
- switch (numberA - ((numberA / 100) * 100))
- /*(numberA/100)*100 is NOT equal to numberA (if numberA is int)
- * I when i did the operation had lost the second and the third digit and after that I draw the
- * result from number and I got the second and the third digit */
- {
- case 0: caseThereIslessThan20 = "Zero"; break;
- case 1: caseThereIslessThan20 = "One"; break;
- case 2: caseThereIslessThan20 = "Two"; break;
- case 3: caseThereIslessThan20 = "Three"; break;
- case 4: caseThereIslessThan20 = "Four"; break;
- case 5: caseThereIslessThan20 = "Five"; break;
- case 6: caseThereIslessThan20 = "Six"; break;
- case 7: caseThereIslessThan20 = "Seven"; break;
- case 8: caseThereIslessThan20 = "Eight"; break;
- case 9: caseThereIslessThan20 = "Nine"; break;
- case 10: caseThereIslessThan20 = "Ten"; break;
- case 11: caseThereIslessThan20 = "Eleven"; break;
- case 12: caseThereIslessThan20 = "Twelve"; break;
- case 13: caseThereIslessThan20 = "Thirdtheen"; break;
- case 14: caseThereIslessThan20 = "Fourteen"; break;
- case 15: caseThereIslessThan20 = "Fiveteen"; break;
- case 16: caseThereIslessThan20 = "Sixteen"; break;
- case 17: caseThereIslessThan20 = "Seventeen"; break;
- case 18: caseThereIslessThan20 = "Eightteen"; break;
- case 19: caseThereIslessThan20 = "Nineteen"; break;
- default: Console.WriteLine("Errorr occurred!"); break;
- }
- }
- //printing results for diferent cases
- Console.Clear();
- Console.WriteLine("number\tnumber as words");
- if (firstDigit == 0 && secondDigit < 2)
- {
- Console.WriteLine("{0}\t{1}", numberA, caseThereIslessThan20);
- }
- else if (firstDigit == 0 && secondDigit >= 2)
- {
- Console.WriteLine("{0}\t{1} {2}", numberA, secondDigitString, thirdDigitString.ToLower());
- }
- else if (firstDigit > 0 && secondDigit < 2)
- {
- if (secondDigit == 0 && thirdDigit == 0)
- {
- Console.WriteLine("{0}\t{1}", numberA, firstDigitString);
- }
- else
- {
- Console.WriteLine("{0}\t{1} and {2}", numberA, firstDigitString, caseThereIslessThan20.ToLower());
- }
- }
- else if (firstDigit > 0 && secondDigit >= 2)
- {
- Console.WriteLine("{0}\t{1} and {2} {3}", numberA, firstDigitString, secondDigitString.ToLower(), thirdDigitString.ToLower());
- }
- else
- {
- Console.WriteLine("I can not belive that is happening!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement