お急ぎの方へ 結論のコード
問題(以下、AtCoderからの引用)
時間制限 : 2sec / メモリ制限 : 256MB
問題文
高橋君はデータの加工が行いたいです。
整数 a,b,cと、文字列 s が与えられます。 a+b+c の計算結果と、文字列 s を並べて表示しなさい。
制約
1≤a,b,c≤1,000
1\leq|s|\leq 100
入力
入力は以下の形式で与えられる。
a
b c
s
出力
a+b+c と s を空白区切りで 1 行に出力せよ。
また、出力の末尾には改行を入れること。
例1
1
2 3
test
6 test
1+2+3 は 6 なので、上記のように出力します。
例2
72
128 256
myonmyon
456 myonmyon
72+128+256 は 456 なので、上記のように出力します。
回答と解説
回答したコード
package main
import "fmt"
func main(){
var a, b, c int
var s string
fmt.Scanf("%d", &a)
fmt.Scanf("%d %d", &b, &c)
fmt.Scanf("%s", &s)
fmt.Println(a+b+c,s)
}
今回の問題は、入門問題らしい、非常に簡潔なものです。
要は、標準入力を受け取り、それらを足して出力するだけ…といったものです。
標準入力を受け取る方法はいくつかありますが、今回はfmt
パッケージのScanf
関数を使いました。
使い方は、ごちゃごちゃ説明するよりも、コードを見て頂ければ一目瞭然かと思います。
fmt.Scanf関数は&を忘れずに
ポイントは、
&
をつけて、変数からポインタを抽出した状態で使うという点かと思います。
さらに、Goは型付き言語です。
第一引数の方には、%d
や%s
のように、型を指定してあげましょう。
以下、主な書き方です。
型 | 書き方 |
---|---|
論理値(bool) | %t |
符号付き整数(int, int8など) | %d |
符号なし整数(uint, uint8など) | %d |
浮動小数点数(float64など) | %g |
複素数(complex128など) | %g |
文字列(string) | %s |
最後に
ざっくりした解説ですが、今回は以上です。
また、間違えている点などありましたら、お気軽にコメント頂けると嬉しいです。
最後まで、ありがとうございました。