問題
Online Judge - Offline
今回の問題は ‘kuti’ (10000000), ‘lakh’ (100000), ‘hajar’ (1000), ‘shata’ (100) のように単位が用意されていて、それを利用して入力した文字を書いていく問題です。
サンプルコード
cpe/一顆星/uva10101/01.cpp at main · mintson0517/cpe
Contribute to mintson0517/cpe development by creating an account on GitHub.
コード解説
まずこの問題で扱う数字の最大は999999999999999です。
この大きさではint形では対応できないので,long型を使用しました。
using ll = long long;
今回は単位の処理部分をsplit()関数内で行うことにしました。
void split(ll n) {
if (n >= 10000000) {
split(n / 10000000);
cout << " kuti";
n %= 10000000;
}
if (n >= 100000) {
split(n / 100000);
cout << " lakh";
n %= 100000;
}
if (n >= 1000) {
split(n / 1000);
cout << " hajar";
n %= 1000;
}
if (n >= 100) {
split(n / 100);
cout << " shata";
n %= 100;
}
if (n)
cout << " " << n;
}
最後に表示をさせます
int main() {
ll n;
int kase = 1;
while (cin >> n) {
cout << setw(4) << kase++ << ".";
if (n)
split(n);
else
cout << " 0";
cout << endl;
}
return 0;
}
ここで注意が必要なのはケースを表示するときはsetw(4)を使うところです。
4つのスペースを獲得するコードでございます!
#include <iomanip>
は “Input/Output Manipulators”が必要