引き続き、AtCoderの過去問をC++で解いていきます。ABC 115A – Christmas Eve Eve Eveから。
ABC 115A – Christmas Eve Eve Eve
問題
D=25なら Christmas
, D=24なら Christmas Eve
, D=23なら Christmas Eve Eve
, D=22なら Christmas Eve Eve Eve
と出力するプログラムを作ってください。
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int d;
cin >> d;
if (d == 25){
cout << "Christmas" << endl;
}else if (d == 24){
cout << "Christmas Eve" << endl;
}else if (d == 23){
cout << "Christmas Eve Eve" << endl;
}else if (d == 22){
cout << "Christmas Eve Eve Eve" << endl;
}
}
ゴリ押しです。ホントはdの数に合わせて、whenなどを回すとスマートなのかなと思いますが、他の人の回答を見ても、同じようにしてますね。
ABC 116A – Right Triangle
問題
直角三角形 ABCがあります。∠ABC=90°です。
三角形 ABCの三辺の長さである |AB|,|BC|,|CA|が与えられるので、直角三角形ABCの面積を求めて下さい。
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int ab, bc, ca;
cin >> ab >> bc >> ca;
cout << ab * bc / 2 << endl;
}
三角形の面積を求めればいいですね。底辺✖️高さ/2ですね。辺caの値は与えられていますが、特に使いませんね。
ABC 117A – Entrance Examination
問題
明日の入学試験に合格するために、太郎くんはあとT時間の勉強をする必要があります。
幸いにも、彼は今いる世界(世界A)のX倍の速度で時間が進む世界Bへ世界跳躍(ワールドリープ)することができます。
世界Bで(X×t)時間進むと、世界Aではt時間進みます。
世界BでT時間勉強したとき、世界Aでは何時間進んでいるでしょうか。
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
float t, x;
cin >> t >> x;
cout << t / x << endl;
}
tをxで割ってあげれば、答えとなります。注意する点は、tとxをfloat型で受け取っていることです。
ABC 118A – B +/- A
問題
正整数A,Bが与えられます。
AがBの約数ならA+Bを、そうでなければB−Aを出力してください。
自分の回答
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if (b % a == 0){
cout << a + b << endl;
}else {
cout << b - a << endl;
}
}
aがbの約数かどうかを確かめるためには、aでbを割って余りが0であれば、aはbの約数ということができます。コードでいうと、b % a == 0の時となります。