プログラミング学習記録【22日目】/AtCoder Beginners Selection -1
PracticeA - Welcome to Atcoder
問題文
高橋くんはデータの加工が行いたいです。
整数a,b,cと、文字列sが与えられます。
a + b + c の計算結果と、文字列sを並べて表示しなさい。
これについては基礎中の基礎で、特段難しいこともないので早速ソースコードを作ってしまう。
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
int main()
{
int a, b, c;
string s;
cin >> a;
cin >> b >> c;
cin >> s;
cout << (a + b + c) << " " << s << endl;
return 0;
}
ABC086A - Product
問題文
シカのAtCoDeerくんは2つの正整数a,bを見つけました。aとbの積が偶数か奇数かを判定してください。
出力は、奇数ならOdd 偶数ならEvenと出力する。
これに関しても特段難しいことはないので、早速コードを組んで見る。
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
int main()
{
int a, b;
cin >> a >> b;
int c = a * b;
if (c % 2 == 0)
{
cout << "Even" << endl;
}
else
{
cout << "Odd" << endl;
}
}
ABC081A - Placing Marbles
問題文
スヌケくんは1、2、3の番号がついた3つのマスからなるマス目を持っている。各マスには"0"か"1"が書かれており、マスiにはsiが書かれている。
スヌケくんは"1"が書かれているマスにビー玉を置いた。ビー玉が置かれたマスはいくつになるか求めよ。
入力される数字が連続している点に注意。連続してなかったら配列で済むのだのだが、連続しているせいで配列での処理は難しい。
では、配列で何がしたかったのか。
もちろん、一文字ずつジャッジし、"1"だったら何かしらの変数に1プラスする、といった処理をしたかった。
つまり、このプログラムで肝になるのは、入力された文字を1文字ずつ切り離してジャッジを行う.at(i)の存在、ということになる。これを使えるのは配列の他に、文字列があった。つまり、文字列として入力を受け取れば解決するのだ。
これを用いて、コードを組み立てる。
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
int main()
{
string a;
cin >> a;
int count = 0;
rep(i, 3)
{
if (a.at(i) == '1')
{
count++;
}
}
cout << count << endl;
}
おわり!
この記事が気に入ったらサポートをしてみませんか?