ABC403-A
問題の内容
与えられた配列の奇数番目の合計値
言語
Rust
解法
let mut sum = 0;
for i in 0..n {
if i % 2 == 0 {//配列は0から→奇数番目はあまり0
sum += a[i];
}
}
とかにすればできそうなのですが、前日にiterに感動したのでiterで頑張ってみようと思います。
課題
- .filter()の使い方
- 配列番号と中身を紐づけられない問題
学んだこと
- filter等の文法
(|引数| 式)というクロージャ(簡易的な関数)をその場で定義して渡す - 配列番号と中身を紐づける
.enumerate()というあり得ないぐらい便利なものがあるらしい… - 二次元配列にしてしまったので戻さなければいけない
.map()で要素を変更する→2次元配列を1次元配列に変更できる
提出内容
use proconio::input;
fn main() {
input! {
n: usize,
a: [i64;n],
}
let sum: i64 = a
.iter()
.enumerate()
.filter(|(i, _)| i % 2 == 0)//配列は0からより
.map(|(_, x)| x)
.sum();
println!("{}", sum);
}
成績
- 243Byte
- AC
- 0ms
- 2052KiB