// ”Žš‚Μ‰pŒκ“Η‚έ 0`4,294,967,295 #include "stdafx.h" char ge20[][8]={"twenty","thirty","forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; char lt20[][10]={"one","two","three","four","five","six","seven","eight","nine","ten", "eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen", "nineteen"}; void lessHandred(unsigned long X){// 100–’–ž‚Μ“Η‚έ if(X<20) printf(" %s", lt20[X-1]); else{ unsigned long XX=X/10, XM=X % 10; printf(" %s", ge20[XX-2]); if(XM!=0) printf("-%s", lt20[XM-1]); } } void lessThousand(unsigned long X){// 1,000–’–ž‚Μ“Η‚έ unsigned long XX=X/100, XM=X % 100; if(XX>0) { lessHandred(XX); printf(" handred");} lessHandred(XM); } void lessMillion(long X){// 1,000,000–’–ž‚Μ“Η‚έ unsigned long XX=X/1000, XM=X % 1000; if(XX>0) { lessThousand(XX); printf(" thousand");} lessThousand(XM); } int _tmain(int argc, _TCHAR* argv[]) { unsigned long X; while(scanf("%ld", &X)!=EOF){// EOF([CTRL]Z)‚ŏI—Ή if(X==0) printf(" zero");// 0 ‚Μ‚Ζ‚« else{// unsigned long‚̍őε’l‚Ν4,294,967,295‚Θ‚Μ‚Ε XX … 4,294 unsigned long XX=X/1000000; X = X % 1000000; if(XX>0) { lessMillion(XX); printf(" million");} lessMillion(X); } } return 0; }