【CPE一顆星選集】UVA11461 – Square Numbers【C++】

C++

C++で平方数なのかを判別する方法

今回の問題はUVA11461です。

Online Judge
Online Judge

”a,bの二つの数字が入力されて、その数字の範囲内にどれだけの平方数があるのかを数えろ”という問題です。

サンプルコード

GitHub上にサンプルコードを掲載しております。※参考に

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

コードの解説

int a, b;
    while (cin >> a >> b) {
        if (a == 0 && b == 0) {
            break; 
        }

まずはaとbは100000以内なのでint型で定義をします。
その後While構文で入力がなくなるまでinputしてもらえるようにして、最後に(0,0)と入力されたら終了と書きました。

int count = 0;
        for (int i = a; i <= b; i++) {
            int root = sqrt(i);
            if (root * root == i) {
                count++;
            }
        }
        cout << count << endl; 
    }

平方数の数をカウントするので(count=0)にして、もし平方数が見つかったら+1します。
今回の平方数を見つける方法はsqrt(square root)-ルートを使用しました。

sqrt関数を使用する場合はinclude <cmath> が必要!

rootの2乗がiの数になった場合はCount++でカウントをして、forループで範囲内のすべての数字を判別。
最後にcountを出力して答えを表示して終了です。

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