#practicelinkdiv {displejs: nav! Svarīgs; }Rakstiet kodu, lai konvertētu norādīto numuru vārdos.
Piemēri:
Ieteicamā prakse Vesels skaitlis vārdiem Izmēģiniet!Ievade: 438237764
Izlaide: Četrdesmit trīs kronu astoņdesmit divi lakh trīsdesmit septiņi tūkstoši septiņi simti sešdesmit četriātrā šķirošanaIevade: 999999
Izlaide: Deviņi lakh deviņdesmit deviņi tūkstoši deviņi simti deviņdesmit deviņiIevade: 1000
Izlaide: tūkstotis
Paskaidrojums: 1000 vārdos ir "tūkstotis"rhel vs centos
Mēs jau esam apsprieduši pieeju, kas apstrādā numurus no 0 līdz 9999 iepriekšējs post.
Risinājums: Šī pieeja var apstrādāt skaitli līdz 20 cipariem, kas ir mazāki par Ullong_max (Maksimālā vērtība tipa neparakstīta ilgstoša int) objektam. Ullong_max ir vienāds ar 18446744073709551615 decimālā, pieņemot, ka kompilators prasa 8 baitus neparakstīta gara ilga int.
Zemāk attēlojums parāda vietas vērtības diagrammu jebkuram 9 ciparos pozitīvu veselu skaitli:
4 3 8 2 3 7 7 6 4
| | | | | | | | |__ ones' place
| | | | | | | |__ __ tens' place
| | | | | | |__ __ __ hundreds' place
| | | | | |__ __ __ __ thousands' place
| | | | |__ __ __ __ __ tens thousands' place
| | | |__ __ __ __ __ __ hundred thousands' place
| | |__ __ __ __ __ __ __ one millions' place
| |__ __ __ __ __ __ __ __ ten millions' place
|__ __ __ __ __ __ __ __ __ hundred millions' place
Ideja ir sadalīt skaitli atsevišķos ciparos, pamatojoties uz iepriekš minēto vietas vērtību diagrammu, un apstrādāt tos, sākot no nozīmīgākā cipara.
sqrt java matemātika
Šeit ir vienkārša ieviešana, kas atbalsta skaitļus, kuru maksimāli ir 9 cipari. Programmu var viegli paplašināt, lai atbalstītu jebkuru 20 ciparu numuru.
C++/* C++ program to print a given number in words. The program handles till 9 digits numbers and can be easily extended to 20 digit number */ #include using namespace std; // strings at index 0 is not used it is to make array // indexing simple string one[] = { '' 'one ' 'two ' 'three ' 'four ' 'five ' 'six ' 'seven ' 'eight ' 'nine ' 'ten ' 'eleven ' 'twelve ' 'thirteen ' 'fourteen ' 'fifteen ' 'sixteen ' 'seventeen ' 'eighteen ' 'nineteen ' }; // strings at index 0 and 1 are not used they are to // make array indexing simple string ten[] = { '' '' 'twenty ' 'thirty ' 'forty ' 'fifty ' 'sixty ' 'seventy ' 'eighty ' 'ninety ' }; // n is 1- or 2-digit number string numToWords(int n string s) { string str = ''; // if n is more than 19 divide it if (n > 19) str += ten[n / 10] + one[n % 10]; else str += one[n]; // if n is non-zero if (n) str += s; return str; } // Function to print a given number in words string convertToWords(long n) { // stores word representation of given number n string out; // handles digits at ten millions and hundred // millions places (if any) out += numToWords((n / 10000000) 'crore '); // handles digits at hundred thousands and one // millions places (if any) out += numToWords(((n / 100000) % 100) 'lakh '); // handles digits at thousands and tens thousands // places (if any) out += numToWords(((n / 1000) % 100) 'thousand '); // handles digit at hundreds places (if any) out += numToWords(((n / 100) % 10) 'hundred '); if (n > 100 && n % 100) out += 'and '; // handles digits at ones and tens places (if any) out += numToWords((n % 100) ''); //Handling the n=0 case if(out=='') out = 'zero'; return out; } // Driver code int main() { // long handles upto 9 digit no // change to unsigned long long int to // handle more digit number long n = 438237764; // convert given number in words cout << convertToWords(n) << endl; return 0; }
Java /* Java program to print a given number in words. The program handles till 9 digits numbers and can be easily extended to 20 digit number */ class GFG { // Strings at index 0 is not used it is to make array // indexing simple static String one[] = { '' 'one ' 'two ' 'three ' 'four ' 'five ' 'six ' 'seven ' 'eight ' 'nine ' 'ten ' 'eleven ' 'twelve ' 'thirteen ' 'fourteen ' 'fifteen ' 'sixteen ' 'seventeen ' 'eighteen ' 'nineteen ' }; // Strings at index 0 and 1 are not used they are to // make array indexing simple static String ten[] = { '' '' 'twenty ' 'thirty ' 'forty ' 'fifty ' 'sixty ' 'seventy ' 'eighty ' 'ninety ' }; // n is 1- or 2-digit number static String numToWords(int n String s) { String str = ''; // if n is more than 19 divide it if (n > 19) { str += ten[n / 10] + one[n % 10]; } else { str += one[n]; } // if n is non-zero if (n != 0) { str += s; } return str; } // Function to print a given number in words static String convertToWords(long n) { // stores word representation of given number n String out = ''; // handles digits at ten millions and hundred // millions places (if any) out += numToWords((int)(n / 10000000) 'crore '); // handles digits at hundred thousands and one // millions places (if any) out += numToWords((int)((n / 100000) % 100) 'lakh '); // handles digits at thousands and tens thousands // places (if any) out += numToWords((int)((n / 1000) % 100) 'thousand '); // handles digit at hundreds places (if any) out += numToWords((int)((n / 100) % 10) 'hundred '); if (n > 100 && n % 100 > 0) { out += 'and '; } // handles digits at ones and tens places (if any) out += numToWords((int)(n % 100) ''); return out; } // Driver code public static void main(String[] args) { // long handles upto 9 digit no // change to unsigned long long int to // handle more digit number long n = 438237764; // convert given number in words System.out.printf(convertToWords(n)); } }
Python3 # Python3 program to print a given number in words. # The program handles till 9 digits numbers and # can be easily extended to 20 digit number # strings at index 0 is not used it # is to make array indexing simple one = [ '' 'one ' 'two ' 'three ' 'four ' 'five ' 'six ' 'seven ' 'eight ' 'nine ' 'ten ' 'eleven ' 'twelve ' 'thirteen ' 'fourteen ' 'fifteen ' 'sixteen ' 'seventeen ' 'eighteen ' 'nineteen ']; # strings at index 0 and 1 are not used # they are to make array indexing simple ten = [ '' '' 'twenty ' 'thirty ' 'forty ' 'fifty ' 'sixty ' 'seventy ' 'eighty ' 'ninety ']; # n is 1- or 2-digit number def numToWords(n s): str = ''; # if n is more than 19 divide it if (n > 19): str += ten[n // 10] + one[n % 10]; else: str += one[n]; # if n is non-zero if (n): str += s; return str; # Function to print a given number in words def convertToWords(n): # stores word representation of given # number n out = ''; # handles digits at ten millions and # hundred millions places (if any) out += numToWords((n // 10000000) 'crore '); # handles digits at hundred thousands # and one millions places (if any) out += numToWords(((n // 100000) % 100) 'lakh '); # handles digits at thousands and tens # thousands places (if any) out += numToWords(((n // 1000) % 100) 'thousand '); # handles digit at hundreds places (if any) out += numToWords(((n // 100) % 10) 'hundred '); if (n > 100 and n % 100): out += 'and '; # handles digits at ones and tens # places (if any) out += numToWords((n % 100) ''); return out; # Driver code # long handles upto 9 digit no # change to unsigned long long # int to handle more digit number n = 438237764; # convert given number in words print(convertToWords(n)); # This code is contributed by mits
C# /* C# program to print a given number in words. The program handles till 9 digits numbers and can be easily extended to 20 digit number */ using System; class GFG { // strings at index 0 is not used it is // to make array indexing simple static string[] one = { '' 'one ' 'two ' 'three ' 'four ' 'five ' 'six ' 'seven ' 'eight ' 'nine ' 'ten ' 'eleven ' 'twelve ' 'thirteen ' 'fourteen ' 'fifteen ' 'sixteen ' 'seventeen ' 'eighteen ' 'nineteen ' }; // strings at index 0 and 1 are not used // they are to make array indexing simple static string[] ten = { '' '' 'twenty ' 'thirty ' 'forty ' 'fifty ' 'sixty ' 'seventy ' 'eighty ' 'ninety ' }; // n is 1- or 2-digit number static string numToWords(int n string s) { string str = ''; // if n is more than 19 divide it if (n > 19) { str += ten[n / 10] + one[n % 10]; } else { str += one[n]; } // if n is non-zero if (n != 0) { str += s; } return str; } // Function to print a given number in words static string convertToWords(long n) { // stores word representation of // given number n string out1 = ''; // handles digits at ten millions and // hundred millions places (if any) out1 += numToWords((int)(n / 10000000) 'crore '); // handles digits at hundred thousands // and one millions places (if any) out1 += numToWords((int)((n / 100000) % 100) 'lakh '); // handles digits at thousands and tens // thousands places (if any) out1 += numToWords((int)((n / 1000) % 100) 'thousand '); // handles digit at hundreds places (if any) out1 += numToWords((int)((n / 100) % 10) 'hundred '); if (n > 100 && n % 100 > 0) { out1 += 'and '; } // handles digits at ones and tens // places (if any) out1 += numToWords((int)(n % 100) ''); return out1; } // Driver code static void Main() { // long handles upto 9 digit no // change to unsigned long long int to // handle more digit number long n = 438237764; // convert given number in words Console.WriteLine(convertToWords(n)); } } // This code is contributed by mits
JavaScript <script> /* Javascript program to print a given number in words. The program handles till 9 digits numbers and can be easily extended to 20 digit number */ // Strings at index 0 is not used it is to make array // indexing simple var one = [ '' 'one ' 'two ' 'three ' 'four ' 'five ' 'six ' 'seven ' 'eight ' 'nine ' 'ten ' 'eleven ' 'twelve ' 'thirteen ' 'fourteen ' 'fifteen ' 'sixteen ' 'seventeen ' 'eighteen ' 'nineteen ' ]; // Strings at index 0 and 1 are not used they are to // make array indexing simple var ten = [ '' '' 'twenty ' 'thirty ' 'forty ' 'fifty ' 'sixty ' 'seventy ' 'eighty ' 'ninety ' ]; // n is 1- or 2-digit number function numToWords(n s) { var str = ''; // if n is more than 19 divide it if (n > 19) { str += ten[parseInt(n / 10)] + one[n % 10]; } else { str += one[n]; } // if n is non-zero if (n != 0) { str += s; } return str; } // Function to print a given number in words function convertToWords(n) { // stores word representation of given number n var out = ''; // handles digits at ten millions and hundred // millions places (if any) out += numToWords(parseInt(n / 10000000) 'crore '); // handles digits at hundred thousands and one // millions places (if any) out += numToWords(parseInt((n / 100000) % 100) 'lakh '); // handles digits at thousands and tens thousands // places (if any) out += numToWords(parseInt((n / 1000) % 100) 'thousand '); // handles digit at hundreds places (if any) out += numToWords(parseInt((n / 100) % 10) 'hundred '); if (n > 100 && n % 100 > 0) { out += 'and '; } // handles digits at ones and tens places (if any) out += numToWords(parseInt(n % 100) ''); return out; } // Driver code // var handles upto 9 digit no // change to unsigned var var var to // handle more digit number var n = 438237764; // convert given number in words document.write(convertToWords(n)); // This code is contributed by Amit Katiyar </script>
PHP /* PHP program to print a given number in words. The program handles till 9 digits numbers and can be easily extended to 20 digit number */ // strings at index 0 is not used it is // to make array indexing simple $one = array('' 'one ' 'two ' 'three ' 'four ' 'five ' 'six ' 'seven ' 'eight ' 'nine ' 'ten ' 'eleven ' 'twelve ' 'thirteen ' 'fourteen ' 'fifteen ' 'sixteen ' 'seventeen ' 'eighteen ' 'nineteen '); // strings at index 0 and 1 are not used // they are to make array indexing simple $ten = array('' '' 'twenty ' 'thirty ' 'forty ' 'fifty ' 'sixty ' 'seventy ' 'eighty ' 'ninety '); // n is 1- or 2-digit number function numToWords($n $s) { global $one $ten; $str = ''; // if n is more than 19 divide it if ($n > 19) { $str .= $ten[(int)($n / 10)]; $str .= $one[$n % 10]; } else $str .= $one[$n]; // if n is non-zero if ($n != 0 ) $str .= $s; return $str; } // Function to print a given number in words function convertToWords($n) { // stores word representation of // given number n $out = ''; // handles digits at ten millions and // hundred millions places (if any) $out .= numToWords((int)($n / 10000000) 'crore '); // handles digits at hundred thousands // and one millions places (if any) $out .= numToWords(((int)($n / 100000) % 100) 'lakh '); // handles digits at thousands and tens // thousands places (if any) $out .= numToWords(((int)($n / 1000) % 100) 'thousand '); // handles digit at hundreds places (if any) $out .= numToWords(((int)($n / 100) % 10) 'hundred '); if ($n > 100 && $n % 100) $out .= 'and '; // handles digits at ones and tens // places (if any) $out .= numToWords(($n % 100) ''); return $out; } // Driver code // long handles upto 9 digit no // change to unsigned long long int to // handle more digit number $n = 438237764; // convert given number in words echo convertToWords($n) . 'n'; // This code is contributed by Akanksha Rai ?> Izvade
forty three crore eighty two lakh thirty seven thousand seven hundred and sixty four
Sarežģītības analīze:
- Laika sarežģītība: O (1).
Cilpa darbojas pastāvīgi daudz laika. - Papildu telpa: O (1).
Jo nav nepieciešama papildu vieta.