チャレンジ問題(基本編全範囲)
基本編1〜7日目の内容を応用した、やや難しいチャレンジ問題です。これまでに学んだ演算・条件分岐・繰り返し・配列・クラスなどを組み合わせて解いてみましょう。
問題 8-1★★ピタゴラス数
1〜100 の整数 a, b, c の組み合わせで、a² + b² = c² を満たすすべての組み合わせを表示しなさい。三重 for ループを使用すること。
期待される実行結果(一部)
3^2 + 4^2 = 5^2
4^2 + 3^2 = 5^2
...
4^2 + 3^2 = 5^2
...
問題 8-2★★ピタゴラス数(重複なし)
問題8-1 の結果から重複を除いて表示しなさい(例:(3,4,5) と (4,3,5) は重複とみなす)。a ≦ b となるような条件を加えること。
問題 8-3★★階乗計算
コンソールから正の整数を入力し、その階乗(n!)を計算して表示するプログラムを作りなさい。
期待される実行結果(6を入力した場合)
6! = 720
問題 8-4★★桁数の判定
1〜1000 の乱数を発生させ、その数が何桁かを表示するプログラムを作りなさい。
問題 8-5★★ナベアツ問題
1〜100 の整数のうち、3の倍数または3を含む数をすべて表示しなさい。
期待される実行結果(一部)
3 6 9 12 13 15 18 21 23 ...
問題 8-6★★分数の加算
2つの分数(それぞれ分子と分母をコンソールから入力)の和を求め、約分した形で表示するプログラムを作りなさい。
期待される実行結果(例:1/2 + 1/3 の場合)
1/2 + 1/3 = 5/6
問題 8-7★★約数の表示
1〜1000 の乱数を発生させ、その数の全約数を小さい順に表示するプログラムを作りなさい。
問題 8-8★★★完全数
10000 以下の完全数(自分自身を除く約数の総和が自分自身と等しい数)をすべて表示しなさい。
完全数の例
6 (1+2+3=6)
28(1+2+4+7+14=28)
28(1+2+4+7+14=28)
問題 8-9★★フィボナッチ数列
フィボナッチ数列の先頭から20個を表示するプログラムを作りなさい。(F(1)=1, F(2)=1, F(n)=F(n-1)+F(n-2))
期待される実行結果(一部)
1 1 2 3 5 8 13 21 ...
問題 8-10★★選択ソート
10要素の配列に乱数(1〜100)を代入し、選択ソートアルゴリズムを使って昇順に並べ替えて表示するプログラムを作りなさい。並べ替え前と並べ替え後の両方を表示すること。