Number to Words
The numbers 1 to 5 written out in words are One, Two, Three, Four, Five
First character of each word will be capital letter for example:
104382426112 is
One Hundred Four Billion Three Hundred Eighty Two Million Four Hundred Twenty Six Thousand One Hundred and Twelve
Given a number, you have to write it in words.
Input Format
The first line contains an integer T, i.e., number of test cases.
Next T lines will contain an integer N.
Constraints
1<=T<=10
0<=N<=10^2
Output Format
Print the values corresponding to each test case.
Sample Input
2
10
17
Sample Output
Ten
Seventeen
Solution : Source (Hackerrank)
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
char digits[20][10] = {"","One","Two","Three","Four",
"Five","Six","Seven","Eight","Nine","Ten","Eleven",
"Twelve","Thirteen","Fourteen",
"Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
char tens[11][10] = {"","","Twenty","Thirty","Forty",
"Fifty","Sixty","Seventy","Eighty","Ninety"};
void word(int num){
if(num/100)
printf("%s Hundred ", digits[num/100]);
if((num%100) < 20 && (num%100) > 0)
printf("%s ",digits[num%100]);
else if((num/10)%10){
printf("%s ", tens[(num/10)%10]);
if(num%10)
printf("%s ", digits[num%10]);
}
}
int main() {
int t;
scanf("%d", &t);
while(t--){
long long int num;
scanf("%lld", &num);
int tn = num / 1000000000000;
int bn = (num / 1000000000) % 1000;
int mn = (num / 1000000) % 1000;
int th = (num / 1000) % 1000;
int hd = num % 1000;
//printf("%d %d %d %d %d\n", tn, bn, mn, th, hd);
if((tn + bn + mn + th + hd) == 0)
printf("Zero");
if(tn){
word(tn);
printf("Trillion ");
}
if(bn){
word(bn);
printf("Billion ");
}
if(mn){
word(mn);
printf("Million ");
}
if(th){
word(th);
printf("Thousand ");
}
if(hd){
word(hd);
}
printf("\n");
}
return 0;
}
You can also run it on an online IDE :
Your feedback are always welcome! If you have any doubt you
can contact me or leave a comment!
Happy Coding!! Cheers!!!
No comments:
Post a Comment