98-03 基礎プログラミング 100本ノック 中級編

No. 40 even or odd

整数値を入力させ、その値が偶数ならばeven、奇数ならばoddと表示するプログラムを作成せよ。

実行例

input number: 6
6 is even.

input number: 7
7 is odd.

偶数=2で割り切れる=2で割った余りが0。


No. 41 1桁の自然数?

整数値を入力させ、その値が一桁の自然数かそうでないか判定するプログラムを作成せよ。

実行例

input number: 6
6 is a single figure.

input number: 10
10 is not a single figure.

input number: -3
-3 is not a single figure.

input number: 0
0 is not a single figure.

一桁の自然数=0より大きく、かつ、9以下の整数、として判定すればよい。


No. 42 小さい順?

整数値を3つ入力させ、それらの値が小さい順(等しくてもよい)に並んでいるか判定し、小さい順に並んでいる場合はOK、そうなっていない場合はNGと表示するプログラムを作成せよ。

実行例

input number 1: 1
input number 2: 2
input number 3: 3
OK

input number 1: 1
input number 2: 1
input number 3: 3
OK

input number 1: 2
input number 2: 1
input number 3: 3
NG


No. 43 2次方程式の解の判別

2次方程式 ax^2 + bx + c = 0 (x^2はxの2乗の意味)の係数a, b, cを入力し、2次方程式の解が2つの実数解か、重解か、2つの虚数解かを判別するプログラムを作成せよ。

実行例

input a: 4
input b: -3
input c: 1
2つの虚数解

input a: 1
input b: 2
input c: 1
重解

input a: 3
input b: 2
input c: -4
2つの実数解


No. 44 通貨換算

換算したい金額(円単位)と1ドル何円かを整数値で入力すると、入力した金額が何ドル何セントか計算して表示するプログラムを作成せよ。1セントは1/100ドルである。結果は整数値でよい(1セント未満の端数切り捨て)。

実行例

何円? 10000
1ドルは何円? 120
10000円は83ドル33セント

何円? 15000
1ドルは何円? 125
15000円は120ドル0セント


No. 45 タクシー料金

初乗り料金が1700mまで610円、それ以降は313mごとに80円のタクシーがある。このタクシーに乗った距離をm単位で入力し、料金を計算するプログラムを作成せよ。

実行例

距離 10000
金額 2770

距離 2013
金額 690

距離 2014
金額 770

313mごとの区間は1mでも進んでしまったら80円かかることに注意。


No. 46 入場料

神山美術館の入場料金は、一人600円であるが、5人以上のグループなら一人550円、20人以上の団体なら一人500円である。人数を入力し、入場料の合計を計算するプログラムを作成せよ。

実行例

人数 3
料金 1800

人数 7
料金 3850

人数 22
料金 11000


No. 47 値の入れ替え

異なる整数値を2つ入力し、それぞれ別の変数に格納する。そして、それらの変数の値を入れ替えた後、それぞれの変数の値を表示するプログラムを作成せよ。

実行例

input a: 2
input b: 5
a = 5, b = 2


No. 48 繰り返し計算

最初に2以上の整数値を入力し、次の規則で計算し、計算回数と計算結果を表示し、計算結果が1になるまで繰り返すプログラムを作成せよ。
規則:ある値が偶数ならその値を1/2にする。奇数ならその値を3倍して1を足す。

実行例

input number: 3
1: 10
2: 5
3: 16
4: 8
5: 4
6: 2
7: 1


No. 49 九九

九九の表を、2重の繰り返しを使って表示するプログラムを作成せよ。値の間はタブ(\t)を使って間をあけること。

実行例

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81


No. 50 foobar

1から100までの値を繰り返しで表示するが、3の倍数の時はfoo、5の倍数の時はbarと数字の代わりに表示するプログラムを作成せよ。なお、3と5の両方の倍数の時はfoobarと表示される。

実行例

1
2
foo
4
bar
foo

97
98
foo
bar


No. 51 お支払い

指定した金額を100円玉と10円玉と1円玉だけで、できるだけ少ない枚数で支払いたい。金額を入力するとそれぞれの枚数を計算して表示するプログラムを作成せよ。

実行例

input money: 12345
100円玉123枚, 10円玉4枚, 1円玉5枚


No. 52 閏年

西暦を入力したらその年が閏(うるう)年かどうかを判定するプログラムを作成せよ。なお、4で割り切れる年のうち、100で割り切れないか、400で割り切れる年は閏年である。

実行例

input year: 2015
2015年は閏年でない

input year: 2016
2016年は閏年である

input year: 2100
2100年は閏年でない

input year: 2000
2000年は閏年である


No. 53 素因数分解

自然数の入力値を素因数分解して結果を表示するプログラムを作成せよ。

実行例

input number: 840
2 2 2 3 5 7


No. 54 最大最小

まずデータの個数を入力させ、次にデータの個数だけ整数値を入力させる。この入力データの中で最大値と最小値を求め表示するプログラムを作成せよ。

実行例

最小値 = 128, 最大値 = 962


No. 55 夢想花again

「とんで」を9回、「まわって」を3回繰り返した後、「まわる」と表示して改行する、を3回繰り返すプログラムを作成せよ。

実行例

とんでとんでとんでとんでとんでとんでとんでとんでとんでまわってまわってまわってまわる
とんでとんでとんでとんでとんでとんでとんでとんでとんでまわってまわってまわってまわる
とんでとんでとんでとんでとんでとんでとんでとんでとんでまわってまわってまわってまわる


No. 56 2進数変換

0〜65535の整数値を入力させ、入力値を16桁の2進数に変換して表示するプログラムを作成せよ。

実行例

input number: 127
0000000001111111

input number: 10000
0010011100010000

input number: 65535
1111111111111111


No. 57 テスト集計

受験者数を入力し、次に英語、数学、国語の点数を入力させる。英語、数学、国語の平均点、および各受験生の合計点を計算して表示するプログラムを作成せよ。

実行例

平均点 英語:46, 数学:51, 国語:55
個人合計点
0: 141
1: 114

8: 96
9: 188


No. 58 棒グラフ

0以上の整数値を5つ入力させ、それぞれの値に対して、次の形式でグラフを描くプログラムを作成せよ。形式:値を表示し、適切に空白を空けて”:”を書く。その後、値の数だけ”*”を描く。5個ごとに空白を1つ入れる。

実行例

input data[0]: 7
input data[1]: 10
input data[2]: 14
input data[3]: 15
input data[4]: 21

7 :** ** 10 :** ** 14 :** * 15 :*** *
21 :
** * *


No. 59 行列の和

3×3行列の和を求めて表示するプログラムを作成せよ。行列の値は2次元配列で表現し、繰り返しを使って計算すること。

実行例

1つめの行列
1 2 3
4 5 6
7 8 9

2つめの行列
2 3 4
5 6 7
8 9 1


3 5 7
9 11 13
15 17 10