2個の整数の入力を扱う易しい問題
関数 max() と関数 min() を使いこなそう! 問題へのリンク 問題概要 2 つの整数 が与えられる。 と のうち、最大のものと最小のものを順に出力せよ。 解法 まず、 と のうちの最大のものは max(A + B, A - B) と表せます。なお、 と が同じ値である場合には…
パズルのような問題! 問題へのリンク 問題概要 0 以上 9 以下の 2 つの整数 が与えられる。 0 以上 9 以下の整数のうち、 とは異なるものを 1 つ求めよ。 考えたこと もし でなければ、0 を出力すれば事足りる。 もし であるならば、0 以外の数 (たとえば 1…
人生で初めてプログラミングをするときに、最初に解きたい問題の 1 つ 問題へのリンク 問題概要 JOI 君の 1 年前の身長は cm であった。JOI 君の今の身長は cm である。 身長はどれだけ伸びたか? 解法 身長の伸びは、 cm です。 整数値 を受け取る整数型変…
十の位と一の位から、整数値を求めよう。 問題へのリンク 問題概要 2 つの整数 が与えられる。 十の位が 、一の位が であるような 2 桁の正の整数を求めよ。 制約 考えたこと このような問いは、中学数学でよく学ぶ。 一般に、十の位が 、一の位が であるよ…
if 文の練習! 問題へのリンク 問題概要 2 個の整数 が与えられる。 ならば、-1 ならば、0 ならば、1 を出力せよ。 考えたこと if 文や、if-else 文で処理できる。 コード #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; if (A < B)</bits/stdc++.h>…
その日プログラミングを始めたばかりの方にオススメの問題! 問題へのリンク 問題概要 縦の辺の長さが cm、横の辺の長さが cm である長方形の面積は何 cm² か? 考えたこと 答えは です。プログラムでは、 に対応する整数型変数 (たとえば A, B) を用意して…
A 問題よりは少しレベルアップする! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が何桁になるかを求めよ。 制約 解法 まず、 の値を計算しましょう。その値を仮に としましょう。 残る問題は、この整数値 が何桁なのかを求めることです。 方法…
その日プログラミングを始めたばかりの人に勧めたい問題の 1 つ! 問題へのリンク 問題概要 整数 が与えられる。 時間 分が何分であるかを求めよ。 解法 1 (時間) = 60 (分) なので、 (時間) = (分) です。 よって、次のようになります。 (時間) (分) = (分)…
上手に考えることで、実装が複雑になりすぎないようにしたい。 問題へのリンク 問題概要 次の図で 番と 番がつながっているかどうかを判定せよ。 制約 考えたこと という制約を考慮すると、Yes となる場合は、次の 10 通りの場合がある。 これらを順に判定し…
切り上げ処理の練習! 問題へのリンク 問題概要 円ある。10 円増やすことを繰り返して 円以上になるようにしたい。 10 円増やす操作を最小で何回やればよいかを求めよ。 解法 まず、 のときは、もともと 10 円を増やす必要はないので 0 回になる。 の場合は…
鉄則本最初の練習問題! 問題へのリンク 問題概要 2 個の整数 の和 の値を求めよ。 解法 整数値 A, B の値を標準入力で受け取り、A + B の値を標準出力すれば OK。 コード #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; cout << A </bits/stdc++.h>…
JOI 一次予選の問題は本当に教育的なものが多い! 問題へのリンク editorial へのリンク 問題概要 リンゴが 個、ミカンが 個、バナナが 3 個ある。 リンゴとミカンとバナナが合わせて何個あるかを求めよ。 解法 答えは 個です。 プログラムを書くときには、…
if 文を上手に使おう! 問題へのリンク 問題概要 グラムの純金と、 グラムの純銀を混ぜる かつ のときは "Gold" かつ のときは "Silver" かつ のときは "Alloy" と出力せよ。 解法 問題文に書いてある通りに判定しよう。最後の "Alloy" の判定は else のみで…
double 型変数の練習! 問題へのリンク 問題概要 2 つの数 が与えられる。 の値を出力せよ。なお、絶対誤差または相対誤差が 以下であれば正解とみなされる。 解法 普段は整数型を扱うことが多いけど、今回は浮動小数点型を扱おう。そして、小数点以下 位以…
とても教育的な問題! 問題へのリンク 問題概要 整数 が与えられる。 以上 以下の整数は何個あるか? 解法 まず、 の場合は、 以上 以下の整数は存在しないことに注意しよう。この場合は 0 個と答えれば良い。 それでは、 としよう。この場合は、 以上 以下…
算数ではよくある「比」の問題 問題へのリンク 問題概要 100mL あたり kcal のドリンクがある。 mL で何 kcal でしょうか? 解法 求めるカロリーを kcal とする。比で表すと、次のようになる。 内項の積と外項の積は等しいから、 よって、 と求められる。 今…
ジャンケンの問題。何気に将来非常によく出てくる構造を問う問題でもある。 問題へのリンク 問題概要 3 人でジャンケンをしたらあいこになった。3 人のうちの 2 人の出した手がわかっている。残り 1 人の手を答えよ。 なお、0 はグー、1 はチョキ、2 はパー…
これは簡単! 剰余演算子「%」を確認しよう! 問題へのリンク 問題概要 2 個の整数 が与えられる。 が の倍数であるかどうかを判定せよ。 解法 が の倍数であるとは、 を で割った余りが 0 であるということです。 を で割った余りは H % M と書けます。 以…
問題文が複雑! 問題へのリンク 問題概要 日本において、アイス製品は次の 4 種類に大別されます。 乳固形分が 15 パーセント以上、乳脂肪分が 8 パーセント以上含まれるものを「アイスクリーム」とする 上に当てはまらず、乳固形分が 10 パーセント以上、乳…
割合を計算する問題! 問題へのリンク 問題概要 円のものが 円で売られた。何%引きか? 解法 答えは である。これを double 型などで計算して、小数点第 2〜3 位まで答えれば OK。 ここでは念の為に、小数点第 10 位まで出力した。 #include <bits/stdc++.h> using namespac</bits/stdc++.h>…
3-point shot で逆転できるという条件を、上手に数式に落とし込もう! 問題へのリンク 問題概要 バスケの試合で両チームの得点は 点である ( である)。 どちらかのチームに 3 点追加されたときに、逆転が起こるかどうかを判定せよ。 解法 のどちらが大きいか…
割り算の練習! 問題へのリンク 問題概要 トラックには合計で キログラム以下の荷物を載せることができます。 このトラックに、1 個 キログラムのレンガを最大でいくつ載せることができますか? 解法 中学 1 年生の数学「文字と式」を習うときの気持ちを思い…
四則演算を使いこなそう! 問題へのリンク 問題概要 ある SNS では、 2 × (フォロワー数) + 100 [人] までフォローすることができる。今のフォロワー数が 、フォロー数が である場合に、あと何人フォローできるかを答えよ。 解法 フォローできる上限人数は […
ABC の中でトップクラスに易しい問題 問題へのリンク 問題概要 2 個の整数 が与えられる。 の値を出力せよ。 解法 A * B を出力すればよい。 #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; cout << A * B << endl; }</bits/stdc++.h>
易しい問題だけど、どっちがどっちだけ......となりやすい問題なので、サンプルで確認してから提出しよう! 問題へのリンク 問題概要 2 つの整数 が与えられる。 が 以上であるならば "unsafe" と出力し、そうでなければ "safe" と出力せよ。 解法 問題の意…
ちょっとした式変形のスキルも要求される。 問題へのリンク 問題概要 コンテストの参加回数 、表示レーティングは次のようになる。 のとき:内部レーティングに一致する のとき:内部レーティングから を引いた値となる 高橋君のコンテスト参加回数が で表示…
これはとても教育的な問題!! 問題へのリンク 問題概要 HP が であるモンスターとサーバルは戦っている。 1 回の攻撃で HP を だけ減らすことができる。HP が 0 以下になるのに必要な攻撃回数を求めよ。 解法 (1) を で割ったときに、余りがあるならば追加…
現実世界に即した if 文の練習問題。こういうのは面白くていいね! 問題へのリンク 問題概要 個のテストケースのうち、 個の正解した。 AC となるかどうかを判定せよ。 制約 解法 AC となる条件を整理すると「」と書ける。よって、これを if 文で判定すれば…
if 文の練習。 問題へのリンク 問題概要 円玉が 枚ある。 総額が 円以上ならば "Yes" を出力し、そうでなければ "No" を出力せよ。 解法 総額は 500 * K と表せるので、これが X 以上であるかどうかを判定すればよい。 #include <bits/stdc++.h> using namespace std; int m</bits/stdc++.h>…
発想ゲー。 問題へのリンク 問題概要 1, 2, 3 のうちの 2 つの整数 が与えられる。 残りの整数を答えよ。 解法 色んな解法が考えられる。 の値で場合分けして解くこともできる。 しかし、最も簡単なのは、合計値が なのだから、そこから と を引く方法であろ…