The_Best_OIer
2024-11-15 15:40:02
萌新的第一篇题解,也是靠着大佬的指导才完成的,勿喷。
话不多说先讲思路,这道题的意思是你要用一种表示数的方法来表示一个数,其实就是把数字分段。
那我们可以写一个函数用来实现,想要分段可以使用 C++ 中的除法、取模来实现。
有一个要注意的点,就是在输出的时候的格式是先输出 .
注意 .
后面有个空格(我细心看样例后才发现)。
还有,要开 long long
。
接下来就是核心代码(给数字分段的函数),部分讲解在代码注释中。
void show_the_number_in_Bangla(ll number) {
if (number >= 10000000) { //符合kuti表示的范围
show_the_number_in_Bangla(number / 10000000);
cout << " kuti";
show_the_number_in_Bangla(number % 10000000);
} else {
if (number >= 100000) { //符合lakh表示的范围
cout << " " << (number / 100000) << " lakh";
}
number %= 100000; //去掉lakh表示的
if (number >= 1000) { //符合hajar表示的范围
cout << " " << (number / 1000) << " hajar";
}
number %= 1000; //去掉hajar表示的
if (number >= 100) { //符合shata表示的范围
cout << " " << (number / 100) << " shata";
}
number %= 100; //去掉shata表示的
if (number > 0) cout << " " << number; //剩下的无法表示的,直接输出
}
}
感谢管理员的审核,求通过。