【CPE一顆星選集】UVA10929 – You can say 11【C++】

C++

問題リンク

Online Judge
Online Judge

この問題はシンプルで11の倍数であるかを判断するコードです。

サンプルコード

cpe/一顆星/uva10929/01.cpp at main · mintson0517/cpe
Contribute to mintson0517/cpe development by creating an account on GitHub.

コードの解説

 string num;
    while (cin >> num) {
        if (num == "0") break;

まずは数字を入力して、0が入力されたら終了です。

int sum = 0;
int digit;
int position = 1;

 for (int i = num.size() - 1; i >= 0; i--) {
        digit = num[i] - '0';
        if (position % 2 == 0) {
              sum += digit;
         } else {
           sum -= digit;
         }
          position++;
 }

11の倍数であるかを判断するときは偶数の桁と奇数の桁の数の合計を引いた時の答えが0もしくは11の倍数の時には11の倍数となります。

この法則を利用して描いたのが上記のコードです。

if (sum % 11 == 0) {
            cout << num << " is a multiple of 11." << endl;
        } else {
            cout << num << " is not a multiple of 11." << endl;
        }

最後は奇数と偶数の桁の合計を引いたものが11で割り切れるのかを判断して、もし出来たら11の倍数、出なかったら違います。

これをif,else構文で記述します。

タイトルとURLをコピーしました