paizaの練習問題を解く 2項間漸化式 2 Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 2項間漸化式 2 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 このように実装しました。 package main import "fmt" func main(){ var x, d, q int fmt.Scan(&x, &d, &q) k := make([]int, q) max := 0 for i := 0; i < q; i++ { fmt.Scan(&k[i]) if i == q - 1 { max = k[i] } } a := make([]int, max) a[0] = x for i := 1; i < max; i++ { a[i] = a[i - 1] + d } for i := 0; i < q; i++ { fmt.Println(a[k[i] - 1]) } } ですがこれだと通りませんでした。。 k_Qが必ずmaxになるわけではないようです。 ということで少し修正しました。 package main import "fmt" func main(){ var x, d, q int fmt.Scan(&x, &d, &q) k := make([]int, q) max := 0 for i := 0; i < q; i++ { fmt.Scan(&k[i]) if max < k[i] { max = k[i] } } a := make([]int, max) a[0] = x for i := 1; i < max; i++ { a[i] = a[i - 1] + d } for i := 0; i < q; i++ { fmt.Println(a[k[i] - 1]) } } これでうまく動作しました。 ...