paizaオンラインハッカソン7に参加してみた – ショートヘア(C++, Swift)

この記事は1年以上前に掲載されたものです。 情報が古い場合がありますのでお気を付け下さい。

今回はpaizaオンラインハッカソン7に参加してみた – つり目(C++, Swift)に続いて、『paizaオンラインハッカソンVol.7 プログラミングで彼女をつくる』の「ショートヘアセット」の出題の解答例をあげてみたい。今回もforループと文字列の数値化、計算さえわかってしまえば簡単に解けるだろう。

今回のお題の目的について

ショートヘアセットのお題では、2回数値が入力されるので、その合計値を出力するというものである。

したがって、今回のお題で求められる要素は以下の通りである。

  • forループ
  • 文字列の数値化
  • 演算(加算)

回答例コード

C++

参考URL: https://github.com/saitomarch/POH7/blob/master/cpp/short_hair.cpp

[code lang=”cpp”]#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main(void){
const auto times = 2;
int num = 0;
for (int cnt = 0; cnt < times; cnt++) {
string str;
getline(cin, str);
num += stoi(str);
}
cout << num << endl;
return EXIT_SUCCESS;
}[/code]

Swift

参考URL: https://github.com/saitomarch/POH7/blob/master/swift/short_hair.swift

[code lang=”swift”]let times = 2
var val = 0
for (var cnt = 0; cnt < times; cnt++) {
val += Int(readLine()!)!
}
print(val)[/code]

解説

今回は2回にわたって入力された文字列を数値化して、その合計値を出力するという処理を行うために、定数を定義した上でforループで回している。

C++においては、変数の初期値が不定であること1 、Swiftでは型推論2 のために、一旦0を代入する必要がある。

その後、forループで、受け取った文字列を数値化した上で変数に加算、ループを抜けたら出力するという形となっている。

最後に

今回もプログラミングをかじったら簡単にクリアできる問題なので、気負わずにチャレンジしてみよう。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。ご用の方はコメントかコンタクトフォームにて。
  1. C言語及びC++の自動変数は宣言しただけではその値は不定、つまり0あるいは0以外の数値のランダムとなりうる []
  2. 変数の定義時に受け取った関数の返り値やリテラル値をもとに型を判別する機能。C++ではC++11以降でintやfloatなどの型の代わりにautoを使うことで使用可能。 []