AtCoder

ABC354 A問題(Exponential Plant)を解く

AtCoder_ABC354_A

AtCoder が提供しているABC(AtCoder Beginner Contest)354 A問題をC++とPythonで解いてみました。ABC354は、2024年5月18日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

A問題 Exponential Plant(Difficulty : 21)

問題の詳細は、リンク先をご覧ください。

ABC354 A問題 Exponential Plant

問題の記述に従い植物の高さを計算します。AtCoder Problems による Difficulty は 21 でした。

解答案

C++ プログラム例(ABC354A)

植物の高さを p とします。p に加える値 p2 は、2倍にしていきます。植物の高さ p が高橋君の身長 h を超えればループを終了します。

以下が、C++プログラムです。

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int h;
	cin >> h;

	int result = 0;
	int p = 0;
	int p2 = 1;
	while (h >= p) {
		p += p2;
		p2 *= 2;
		++result;
	}

	cout << result << endl;

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

Python プログラム例(ABC354A)

Python版も基本的な考え方は同じです。累乗演算子を使うことにより楽に書けています。以下がプログラムです。

"""AtCoder Beginner Contest 354 A"""
h = int(input())

result = 0
p = 0
while h >= p:
    p += 2 ** result
    result += 1

print(result)

こちらも「AC」と判定されました。

最後に

変わらず、ABCに参加しています。レートは停滞していますが、コンテストでプログラムを書くこと自体を楽しめています。

引き続き ABC の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA