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

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

1個の整数の入力を扱う易しい問題

JOI 一次予選 2025 第 1 回 A - 鉛筆 2 (9Q, 難易度 1)

とても易しい算数の問題! 問題へのリンク 問題概要 円もっている。 1 個 5 円の鉛筆を何本買えるか? 解法 答えは「 を 5 で割った商」となります。これは C++ では A / 5 と書けます。 コード #include <bits/stdc++.h> using namespace std; int main() { int A; cin >> </bits/stdc++.h>…

AtCoder ABC 160 B - Golden Coins (8Q, 灰色, 200 点)

算数的な問題 問題へのリンク 問題概要 高橋君は金色の硬貨が好きです。自分が持っている 500 円硬貨 1 枚につき 1000、5 円硬貨 1 枚につき 5 の「嬉しさ」を得る。 高橋君が 円もっているとき、高橋君の「嬉しさ」の最大値はいくらか? 制約 考えたこと コ…

第 16 回 PAST A - ツバメ (8Q)

簡単な if 文の問題! 問題へのリンク 問題概要 日本では、ツバメは 4 月から 9 月まで観察できる。 1 以上 12 以下の整数 が与えられるので、 月にツバメを観察できるか答えてください。 考えたこと 次のように考えればよい。 のとき:"Yes" そうでないとき…

AtCoder ABC 281 A - Count Down (8Q, 灰色, 100 点)

while 文や for 文で実装できる。 問題へのリンク 問題概要 正の整数 が与えられる。 をこの順に出力せよ。 考えたこと while 文で自然に実装できる。 N >= 0 である限り、N を出力したのち、N の値を 1 下げていけば良い。 コード #include <bits/stdc++.h> using namespac</bits/stdc++.h>…

AtCoder ABC 365 A - Leap Year (8Q, 灰色, 100 点)

閏年の問題! 問題へのリンク 問題概要 1583 以上 2024 以下の整数 が与えられる。なお、西暦 年の日数は、 が 4 の倍数でないとき:365 日 が 4 の倍数で、かつ 100 の倍数でないとき:366 日 が 100 の倍数で、かつ 400 の倍数でないとき:365 日 が 400 …

AtCoder ABC 363 A - Piling Up (8Q, 灰色, 100 点)

レーティングネタ問題! 問題へのリンク 問題概要 1 以上 299 以下の整数 が与えられる。 よりも大きい最小の 100 の倍数から を引いた値を求めよ。 解法 (1):場合分けして解く 場合分けして考えてしまうのが確実かもしれない。 のとき: より大きい最小の …

AtCoder ABC 254 A - Last Two Digits (灰色, 100 点)

整数として扱っても解けるけど、文字列として処理するのが楽だと思う! 問題へのリンク 問題概要 100 以上の 3 桁の整数 が与えられるので、 の下二桁を出力せよ。 解法 3 桁の整数値を文字列 N として入力を受け取ろう。たとえば、459 という整数は、"459" …

AtCoder ABC 361 F - x = a^b (1D, ?色, 500 点)

包除原理した! 問題へのリンク 問題概要 1 以上 以下の正整数 であって、ある正整数 と 2 以上の正整数 を用いて と表現できるものはいくつありますか? 制約 考えたこと まず考えたのは、 は素数のみ考えれば良いということだった。たとえば、 というよう…

AtCoder ABC 239 A - Horizon (8Q, 灰色, 100 点)

平方根の求め方を確認しておこう 問題へのリンク 問題概要 地上 メートルの高さから見える水平線までの距離は と表される。 地上 メートルの高さから見える水平線までの距離を求めよ。 制約 は整数 解法 の値を求めればよい。 C++ では、 は関数 sqrt() を用…

AtCoder ABC 238 A - Exponential or Quadratic (6Q, 灰色, 100 点)

ちゃんと証明しようとすると、数学的帰納法などが必要になるが、推測して答えてもいいと思う。 問題へのリンク 問題概要 正の整数 が与えられる。 が成り立つかどうかを判定せよ。 制約 解法 この手の問題では、小さな で実験してみよう! そうすれば法則性…

AtCoder ABC 234 A - Weird Function (7Q, 灰色, 100 点)

数学の関数と、プログラミングにおける関数を繋げよう! 問題へのリンク 問題概要 関数 を とする。 与えられた整数 に対して、 を求めよ。 制約 は 0 以上 10 以下の整数 解法 関数 を、プログラムにおける「関数」として実装しよう。 コード #include <bits/stdc++.h> usi</bits/stdc++.h>…

AtCoder ABC 230 A - AtCoder Quiz 3 (9Q, 灰色, 100 点)

N の値に応じて、N の値を 1 上げよう。 問題へのリンク 問題概要 回目に開催された "AGC" を、たとえば "AGC051" のように出力せよ。 なお、"AGC042" は存在せずに欠番になっているため。42 回目の AGC は "AGC043" であり、43 回目の AGC は "AGC044" であ…

JOI 一次予選 2022 (第 1 回) A - 余り (9Q, 難易度 1)

余りを求めるための剰余演算子「%」を確認しておこう! 問題へのリンク 問題概要 正の整数 が与えられるので、 を 21 で割った余りを出力せよ。 解法 X を 21 で割った余りは、演算子「%」を用いて、 X % 21 によって求められます。 コード #include <bits/stdc++.h> using </bits/stdc++.h>…

JOI 一次予選 2022 (第 2 回) A - 立方体 (10Q, 難易度 1)

このくらい易しい問題はとてもいい! 問題へのリンク editorial 問題概要 一辺の長さが である立方体の体積を求めよ。 解法 求める体積は である。 よって、整数値 X の入力を受け取り、X * X * X の値を出力すればよい。 コード #include <bits/stdc++.h> using namespace </bits/stdc++.h>…

JOI 一次予選 2023 (第 2 回) A - 時間 (10Q, 難易度 1)

「1 日 = 24 時間」ですね。 問題へのリンク editorial 問題概要 日とは、何時間であるか求めよ。 解法 1 日は 24 時間であり、2 日は 48 時間であり、3 日は 72 時間である。このように、日数に 24 をかけることで、時間数を求めることができる。 よって、 …

鉄則本 A01 - The First Problem (10Q, ★1)

鉄則本の最初の問題! 問題へのリンク 問題概要 一辺の長さが であるような正方形の面積を求めよ。 解法 求める正方形の面積は ですね。 よって、整数値 N の値を標準入力で受け取って、N * N の値を標準出力すればよいでしょう。 コード #include <bits/stdc++.h> using na</bits/stdc++.h>…

AtCoder ABC 223 A - Exact Price (8Q, 灰色, 100 点)

えぐいコーナーケースに注意! でもサンプルにあるね。 問題へのリンク 問題概要 財布に 円玉が 1 枚以上入っています。 財布に入っている合計金額がちょうど 円であるようなことが、あり得るかどうかを判定してください。 制約 考えたこと 基本的には「 が …

AtCoder ABC 222 A - Four Digits (8Q, 灰色, 100 点)

色んな方法がある。C 言語では、 printf() 関数を用いるのが楽だと思われる。 問題へのリンク 問題概要 0 以上 9999 以下の整数 が与えられます。 の先頭に必要なだけ 0 をつけ、4 桁の文字列にしたものを出力してください。 解法 C 言語であれば、整数値 の…

AtCoder ABC 219 A - AtCoder Quiz 2 (9Q, 灰色, 100 点)

if 文を使って落ち着いて整理しよう。 問題へのリンク 問題概要 100 点満点の試験を受ける。得点に応じて以下の評価を受ける。 0 点以上 40 点未満のとき、初級 40 点以上 70 点未満のとき、中級 70 点以上 90 点未満のとき、上級 90 点以上のとき、エキスパ…

AtCoder ABC 206 A - Maxi-Buying (9Q, 灰色, 100 点)

出力がややこしい...... 問題へのリンク 問題概要 税抜価格が 円の品物に対して、消費税 8% を乗せた税込価格と 206 円との大小比較をせよ。 (出力形式はリンク先から) 解法 税込価格は (int)(1.08 * N) で求めることができる。 #include <bits/stdc++.h> using namespace s</bits/stdc++.h>…

AtCoder ABC 200 A - Century (8Q, 灰色, 100 点)

切り上げ処理の問題! 問題へのリンク 問題概要 西暦 年は何世紀ですか? 解法 のとき、2 世紀 のとき、21 世紀 というように、 を 100 で割ったときの余りを切り上げたものが答えとなる。 これは、(N + 100 - 1) / 100 によって求められる。ここがピンと来…

AtCoder ABC 198 A - Div (8Q, 灰色, 100 点)

実はすごく簡単なのだが、戸惑うかもしれない。 問題へのリンク 問題概要 個のものを A 君と B 君で分け合う。 A 君も B 君も 1 個以上もらうようにするとき、分け方は何通りあるか? 解法 次の 通りある。 A 君: 個、B 君: 個 A 君: 個、B 君: 個 ... A…

AtCoder ABC 192 A - Star (8Q, 灰色, 100 点)

一見「切り上げ処理」が必要だが、実は要らない! 問題へのリンク 問題概要 コインが 枚ある。 よりも大きい最小の の倍数まで、あと何枚か? 解法 を 100 で割ったあまりを としよう。このとき、次の の倍数までは だけ必要である。たとえ、 が 100 で割り…

AtCoder ABC 183 A - ReLU (9Q, 灰色, 100 点)

if 文を使ってもいいし、関数 max() を使ってもよい。 問題へのリンク 問題概要 整数 が与えられる。 ならば を出力せよ ならば 0 を出力せよ 解法 (1):if 文 if 文を用いて、 であるかどうかを判定して、処理を分けよう。 #include <bits/stdc++.h> using namespace std; </bits/stdc++.h>…

AtCoder ABC 178 A - Not (9Q, 灰色, 100 点)

if 文を用いてもいいが、もっと楽にできる! 問題へのリンク 問題概要 0 か 1 である整数 が与えられる。 ならば 1 を出力し、 ならば 0 を出力せよ。 解法 if 文を用いてもよいが、 を出力するのが簡単だ。 #include <bits/stdc++.h> using namespace std; int main() { in</bits/stdc++.h>…

AtCoder ABC 174 A - Air Conditioner (9Q, 灰色, 100 点)

久しぶりに簡単な問題! 問題へのリンク 問題概要 整数 が与えられる。 が 30 以上ならば "Yes"、そうでなければ "No" を出力せよ。 解法 if 文を使おう。 #include <bits/stdc++.h> using namespace std; int main() { int X; cin >> X; if (X >= 30) cout << "Yes" << end</bits/stdc++.h>…

AtCoder ABC 173 A - Payment (8Q, 灰色, 100 点)

これはちょっと難しい。 問題へのリンク 問題概要 円の買い物をした。1000 円札のみを用いて支払うとき、お釣りはいくらになるか? 解法 まず、 が 1000 で割り切れるときは、お釣りはない。つまり、0 円である。 が 1000 で割り切れないときが少し難しい。…

AtCoder ABC 172 A - Calc (9Q, 灰色, 100 点)

算数の素養は必要なく、ただ本当に計算式を実装する。 問題へのリンク 問題概要 整数 が与えられる。 の値を出力せよ。 解法 とは、 のことである。また、 とは、 のことである。 よって、 a + a * a + a * a * a の値を出力すればよい。 #include <bits/stdc++.h> using na</bits/stdc++.h>…

AtCoder ABC 168 A - ∴ (Therefore) (8Q, 灰色, 100 点)

ちょっと一見面倒な問題。 問題へのリンク 問題概要 999 以下の正の整数 が与えられる。 の一の位の値に応じて、bon / pon / hon のいずれかを付けよ(詳細はリンク先参照)。 解法 の一の位の値は N % 10 で取得できる。この値を調べればよい。 ここで、コ…

AtCoder ABC 162 A - Lucky 7 (8Q, 灰色, 100 点)

これは文字列で入力を受け取って処理した方が楽! 問題へのリンク 問題概要 3 桁の整数 が与えられる。 の桁の値に 7 が含まれるかどうかを判定せよ。 解法 を整数として処理することもできるが、文字列として受け取った方が楽。 文字列ならば、N[0] と N[1]…