EPOCH@まつやま実行委員会
Email:epoch EPOCH@まつやまアドレス
URL:http://epoch.cs.ehime-u.ac.jp/

問題例

本選問題例

2007年11月24日と25日に行われた本選の問題の一部を公開しております.

本選第1ステージ問題

本選最終ステージ問題

そのほかの問題例

問題1『あなたの誕生日は何曜日?』

生年月日を入力すると,その日が何曜日であるのかを出力するプロ
グラムを作って下さい.
(例)
入力: 2002 1 31
出力: 木曜日

※うるう年の定義は次の通りです:
西暦年が 4 の倍数であって 100 の倍数でない年がうるう年である.ただし,400 の倍数である場合は特別にうるう年とする.
※2007 年 11 月 24 日が土曜日であるという情報は使ってもかまいません.

では,1990 年 7 月 7 日は何曜日でしょう?

解答1

土曜日

問題2『太りすぎ?やせすぎ?』

体重(kg)と身長(m)からBMIにより肥満度を計算するプログラムを作って下さい.BMIの計算式は,次のとおりです.
BMI=体重÷身長÷身長
結果を次のように分類して表示して下さい.

BMI  結果
30以上                   肥満
25以上                   太りぎみ
18.5以上25未満    普通
18.5未満                やせすぎ

入力は体重(kg)と身長(cm)を入力します.
(例)
入力: 70 170
出力: 普通
入力: 50 110
出力: 肥満

では、体重30キロで身長100cmの人は?

解答2

肥満

問題3 『約数を求めよう!』

約数を入力すると,その約数をすべて出力するプログラムを作ってください.

(例)
入力: 1234
出力: 1 2 617 1234

では、5678の約数は何でしょうか?

解答3

1 2 17 34 167 334 2839 5678

問題4 『キーワードはいくつある?』

2つの文字列を入力します。文字列とは,2つ以上の半角英数字の列のことで、大文字と小文字は別の文字とします.

最初の文字列を文字列A,2番目の文字列を文字列Bとするとき、
文字列Aの中に含まれる文字列Bの個数を表示するプログラムを作ってください.
ただし,文字列Bの中に同じ文字が2つ以上含まれないものとします.

(例)
入力: ABC123EFG123HJK 123
出力: 2

では、
ABpanCDpanpanEFpanpa pan
 を入力したときの出力はどうなるでしょうか?

解答4

4

問題5 『あなたは合格?不合格?』

3科目(国語・数学・英語)の試験結果から,合格・不合格を判定するプログラムを作ってください.以下の基準をひとつでも満たすと,残念ながら不合格です.

1.30点未満の科目が1科目でも存在する.
2.3科目の合計点が180点未満である.

(例)
入力: 76 82 90
出力: 合格

入力: 96 21 88
出力: 不合格

では、国語82点,数学73点,英語51点の人は合格ですか?

解答5

合格

問題6 『カレンダ』

ある月のカレンダを見ています.
1日がA曜日のとき,B日は,何曜日になるか求めるプログラムを作ってください.
但し,曜日の入出力を表記する際は以下の3文字のアルファベットを用います.
日Sun,火Tue,水Wed,木Thu,金Fri,土Sat

(例)
A:日,B:17のとき,
入力: Sun 17
出力: Tue

では,1日が火曜日のときの20日は何曜日になるでしょうか?

解答6

Sun

問題7 『最小値~平均値~最大値』

n個の整数を入力とし,それらに対して最小値,平均値,最大値を「最小値~平均値~最大値」というかたちで出力するプログラムを作ってください.
ただし,最初に個数であるnを入力するものとします.
n≦0の場合は何も出力せずに終了させてください.
また,平均値は四捨五入して小数点以下第1位まで表示させてください.

(例)
入力:
5
2 1 9 -3 6
出力:
-3 ~ 3.0 ~ 9

では,入力が次の場合は?
入力:
17
2 -3 6 0 11 3 2 1 8 44 12 25 -30 91 17 26 25

解答7

-30 ~ 14.1 ~ 91

問題8 『飛行時間は何時間?』

飛行機の国際便の出発日時と到着日時から飛行時間を計算するプログラムを作ってください.

2つの都市の間には時差があります.例えば,日本とデトロイトの時差は-14時間です.つまりデトロイトの方が14時間だけ日本より遅れています.但し,4月から10月までは夏時間で時差を+1時間します.
東京発 7月19日13時00分,デトロイト着 7月19日12時30分とすると必要な飛行時間は12時間30分になります.

プログラムが受け付ける都市は以下の通りです.
また夏時間は形式的に4月1日からはじまり10月31日で終わるものとします.

都市名            都市コード        時差
東京                TO                       0(夏時間なし)
ニューヨーク      NE                    -14(夏時間あり)
デトロイト          DE                     -14(夏時間あり)
シカゴ              SI                      -15(夏時間あり)
バンクーバー    VA                     -17(夏時間あり)
シドニー           SY                      +1(
夏時間あり)
モスクワ           MO                     -6(夏時間あり)

例の場合次のような入出力とします.

(例)
入力:TO 07 19 13 00 DE 07 19 12 30
出力:12時間30分

では,モスクワ7月23日19:20発,東京着7月24日10:00時着の飛行時間は?

解答8

9時間30分

問題9 『部分文字列の繰り返し』

1つの文字列と2つの自然数を入力します.
文字列とは2
つ以上の半角英数字の列のことで,大文字と小文字は別の文字とします.

最初に入力された自然数をa,2番目に入力された自然数をbとします.
このとき,文字列のa番目の文字から最後の文字までの文字列を文字列Cとします.

文字列Cをb回繰り返し出力するプログラムを作ってください.

(例)
入力:ABCDEFG 5 3
出力:EFGEFGEFG

では,

Matsuyama 6 4

を入力したときの出力はどうなるでしょうか?

解答9

yamayamayamayama

問題10 『首位打者は誰?』

5人の選手の打率を計算して,首位打者を表示するプログラムを作ってください.

なお,
    打率=安打数/打数
で計算されます.入力は,左から順に選手名・打数・案打数とします.

(例)
入力:
Ogasawara 390 125
Tani 378 122
Saeki 258 84
Aoki 357 126
Ramirez 374 129

出力:
Aoki

では,次の選手のうち,首位打者は誰でしょう?
Ohmura 370 120
Morimoto 405 127
Cabrera 289 93
Rick 304 101
Rhodes 345 108

解答10

Rick