けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

【問題集】if文

AtCoder ABC 119 A - Still TBD (灰色, 100 点)

これは戸惑った人も多いと思う。実は単純に考えて OK! 問題へのリンク 問題概要 日付データが yyyy/mm/dd 形式の文字列で与えられる (ex:"2019/04/30")。 与えられた日付が、2019 年 4 月 30 日以前であるかどうかを判定せよ。 解法 文字列を string 型で…

AtCoder ABC 118 A - B +/- A (灰色, 100 点)

倍数判定は演算子「%」を用いる! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が の約数ならば の値を出力し、そうでないならば の値を出力せよ。 解法 が の約数 (言い換えると、 が で割り切れる) であるかどうかは、 if (B % A == 0) という…

AtCoder ABC 115 A - Christmas Eve Eve Eve (灰色, 100 点)

落ち着いて処理しよう。 問題へのリンク 問題概要 D=25 なら Christmas D=24 なら Christmas Eve D=23 なら Christmas Eve Eve D=22 なら Christmas Eve Eve Eve と出力するプログラムを作ってください。 解法 if-else 文や、switch 文を用いて処理しよう。 …

AtCoder ABC 114 A - 753 (灰色, 100 点)

論理演算子が使えるかが問われる。 問題へのリンク 問題概要 整数 が、7 または 5 または 3 であるかを判定せよ。 解法 if 文を用いればよい。「または」を判定するためには、論理演算子「||」が使える。 #include <bits/stdc++.h> using namespace std; int main() { int X</bits/stdc++.h>…

AtCoder ABC 112 A - Programming Education (灰色, 100 点)

最初に入力される値に応じて処理を分岐する問題! 問題へのリンク 問題概要 まず整数 を受け取る のとき:"Hello World" と出力せよ のとき:追加で整数 を入力として受け取り、 の値を出力せよ 解法 の値によって、最終的に受け取る入力の個数が変わる問題…

AtCoder ABC 109 A - ABC33 (灰色, 100 点)

パリティの問題。ここのところ、算数や数学の問題が続いている。 問題へのリンク 問題概要 1 以上 3 以下の整数 が与えられる。 が奇数 となるような 1 以上 3 以下の整数 が存在するかどうかを判定せよ。 解法 一般に、かけ算をするとき 偶数が 1 個でも含…

AtCoder ABC 105 A - AtCoder Crackers (灰色, 100 点)

分配に関する面白い問題! 問題へのリンク 問題概要 枚のせんべいを 人に配る。 「最も多くのせんべいをもらった人」と「最も少ないせんべいをもらった人」の、もらったせんべいの個数の差を求めよ。 解法 もし、 が で割り切れるならば、全員に公平に分配で…

AtCoder ABC 104 A - Rated for Me (灰色, 100 点)

現代では古い設定となった問題。 問題へのリンク 問題概要 整数値 が与えられる。 が 1200 未満の場合は、"ABC" そうでなく が 2800 未満の場合は、"ARC" そうでない場合は、"AGC" と出力せよ。 解法 問題文で言われた通りに if-else 文で実装すれば OK。 #i…

AtCoder ABC 102 A - Multiple of 2 and N (灰色, 100 点)

整数問題! 問題へのリンク 問題概要 整数 が与えられる。 と の最小公倍数を求めよ。 解法 一般に最小公倍数を求める方法としてはユークリッドの互助法が知られている。しかし、今回は次のように簡単に考えられる。 が 2 の倍数のとき:最小公倍数は が 2 …

AtCoder ABC 331 A - Tomorrow (灰色, 100 点)

2 回繰り上がる場合 (年末の日) に注意! 問題へのリンク 問題概要 ある暦では、1 年は 月あり、1 月は 日だけある (固定値)。 年 月 日の翌日を答えよ。 解法 年末のパターン、つまり かつ というパターンを見逃さないようにしよう! 年末のときは:答えは …

AtCoder ABC 332 A - Online Shopping (灰色, 100 点)

for 文と if 文の練習! 問題へのリンク 問題概要 種類のものを買う。 種類目のものは価格が 円であり、それを 個買う。 合計金額が 円未満ならば、さらに送料が 円加算される。総支払額を求めよ。 解法 まずは for 文を用いて、 の合計を求めよう。その値が…

AtCoder ABC 334 A - Christmas Present (灰色, 100 点)

近年ここまで簡単な問題は珍しい! 2016 年でも通用する A 問題! 問題へのリンク 問題概要 2 個の整数 が与えられる。 のとき:"Bat" のとき:"Glove" と出力せよ。 解法 if 文で、どちらの方が大きいかを判定すれば OK。 #include <bits/stdc++.h> using namespace std; i</bits/stdc++.h>…

AtCoder ABC 099 A - ABD (灰色, 100 点)

以前に "ABC398" などと出力する問題があったが、その強化版の問題 問題へのリンク 問題概要 解法 が 以上かどうかで場合分けすればよい。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; if (N >= 1000) cout << "ABD" << endl; else cout <</bits/stdc++.h>…

AtCoder ABC 097 A - Colorful Transceivers (灰色, 100 点)

ちょっと整理するのが大変な問題。 問題へのリンク 問題概要 一直線上の座標 の点に、それぞれ A さん、B さん、C さんがいる。 2 人は、距離が 以内にいるとき、直接的に通信ができる。 A さんと C さんが、直接的に、あるいは間接的に、通信ができるかどう…

AtCoder ABC 094 A - Cats and Dogs (灰色, 100 点)

ほどよい算数の問題! 問題へのリンク 問題概要 猫と犬が合わせて 匹いて、そのうちの 匹は猫であることがわかっている。残りの 匹は猫か犬かわからない。 この中に猫がちょうど 匹いるようなことはありうるかどうかを判定せよ。 解法 不等式を立てる技能が…

AtCoder ABC 093 A - abc of ABC (灰色, 100 点)

3 文字の問題 問題へのリンク 問題概要 文字がすべて 'a', 'b', 'c' のいずれかである 3 文字の文字列 が与えられる。 を並び替えることで "abc" にできるかどうかを判定せよ。 解法 おそらく想定解法は、 が "abc", "acb", "bac", "bca", "cab", "cba" のい…

AtCoder ABC 091 A - Two Coins (灰色, 100 点)

硬貨の問題! 問題へのリンク 問題概要 あなたは 円硬貨を 1 枚と、 円硬貨を 1 枚を持っている。 円の品物を購入できるかを判定せよ (お釣りは出ても良い)。 解法 所持金は 円であるから、 がそれ以下であれば OK。 #include <bits/stdc++.h> using namespace std; int mai</bits/stdc++.h>…

AtCoder ABC 088 A - Infinite Coins (灰色, 100 点)

少し気づきにくいかもしれない。 問題へのリンク 問題概要 あなたは、 円硬貨を 枚と、 円硬貨を無限枚持っている。 これらで 円をちょうど支払うことができるかどうかを判定せよ。 解法 一瞬戸惑う問題だと思う。現実の支払いの場面を思い浮かべてみるとわ…

AtCoder ABC 086 A - Product (灰色, 100 点)

ABS に採用した問題! 問題へのリンク 問題概要 2 つの正の整数 が与えられる。 が偶数か奇数かを判定せよ。 解法 一般に、整数 N が偶数かどうかを判定する方法は、if (N % 2 == 0) とすればよい。これを応用して解ける。 #include <bits/stdc++.h> using namespace std; i</bits/stdc++.h>…

AtCoder ABC 083 A - Libra (灰色, 100 点)

if 文の練習問題! 問題へのリンク 問題概要 天秤の左側に重さが g のおもりを乗せ、右側に重さが g のおもりを乗せる。 天秤が左に傾くか、右に傾くか、釣り合うかを判定せよ。 解法 A + B > C + D のときは:"Left" A + B < C + D のときは:"Right" A + B…

AtCoder ABC 081 A - Placing Marbles (灰色, 100 点)

ABS にも採用した問題! 問題へのリンク 問題概要 長さが 3 の文字列 が与えられる。この文字列の文字は '0' か '1' である。 '1' が何文字あるかを答えよ。 解法 3 文字それぞれについて、'1' かどうかを調べれば OK。 #include <bits/stdc++.h> using namespace std; int </bits/stdc++.h>…

AtCoder ABC 075 A - One out of Three (灰色, 100 点)

この時期に多い「3 つの値をどうのこうのする」系の問題 問題へのリンク 問題概要 3 つの整数 が与えられる。 これらの数のうち 2 つは等しく、残り 1 つは異なる。その残りの 1 つの数を答えよ。 解法 次の 3 パターンがある。if 文で判定して答えれば OK。…

AtCoder ABC 073 A - September 9 (灰色, 100 点)

整数値のままでも解けるし、文字列として受け取って解いてもいい。 問題へのリンク 問題概要 2 桁の整数 が与えられる。 が '9' を含むかどうかを判定せよ。 解法 を整数値で処理する場合は 一の位は N % 10 十の位は N / 10 で求められる。これを利用して判…

AtCoder ABC 072 A - Sandglass2 (灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもいい 問題へのリンク 問題概要 秒を測れる砂時計がある。 g あって、1 秒間に 1 g の砂が落ちる。 砂時計の計測を始めてから、 秒間がたった。残っている砂は何 g でしょうか。 解法 基本的には引き算すればよ…

AtCoder ABC 071 A - Meal Delivery (灰色, 100 点)

整数 の差は、絶対値記号を用いて と表せる。絶対値は、たとえば C++ では関数 abs() が使える! 問題へのリンク 問題概要 座標軸上で、店 A, B がそれぞれ座標 にある。 今、すぬけ君は座標 の地点にいる。すぬけ君にとって、店 A, B のどちらに近いかを判…

AtCoder ABC 067 A - Sharing Cookies (灰色, 100 点)

問題文を読み解くのが少し大変だった。 問題へのリンク 問題概要 2 つの整数 が与えられる。 、、 のいずれかが、3 で割り切れるかどうかを判定せよ。 解法 と と のいずれかが 3 で割り切れるかどうかを、or を表す演算子「||」を用いて調べれば OK。 #incl…

AtCoder ABC 065 A - Expired? (灰色, 100 点)

これはちゃんと整理するの大変だと思う! 問題へのリンク 問題概要 ある商品は、賞味期限を過ぎてから 日後まではお腹を壊さずに食べることができる。一方、賞味期限を過ぎてから食べると美味しくありません。 その商品を、賞味期限の 日前に購入し、その日…

AtCoder ABC 064 A - RGB Cards (灰色, 100 点)

3 桁の整数で前から順に である数の表し方は中2で習う内容でもある。 問題へのリンク 問題概要 と書かれた 3 枚のカードをこの順に並べて得られる 3 桁の整数が 4 の倍数であるかどうかを判定せよ。 解法 3 桁の整数で前から順に である数は、 と書ける。 こ…

AtCoder ABC 063 A - Restricted (灰色, 100 点)

if 文のいい練習問題! 問題へのリンク 問題概要 2 つの整数 が与えられる。 が 10 以上ならば "error" を出力し、そうでないならば足し算した結果の値を出力せよ。 解法 if 文を使おう! #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A ></bits/stdc++.h>…

AtCoder ABC 061 A - Between Two Integers (灰色, 100 点)

C++ では if (A <= C <= B) では判定できないことに注意 問題へのリンク 問題概要 3 つの整数 が与えられる。 が 以上 以下であるかを判定せよ。 解法 C >= A かつ C <= B であるかを判定すれば OK。 Python なら if (A <= C <= B) で判定することもできる。…