Накопление результата в цикле в Rust
Давайте теперь будем копить сумму целых чисел от 1 до
100. В цикле перебирают числа и по очереди прибавляют их к
одной переменной. Обычно ее заводят изменяемой и с нуля:
let mut res = 0;
for i in 1..=100 {
res = res + i;
}
println!("{}", res); // выведет 5050
Ту же запись короче делают через +=:
let mut res = 0;
for i in 1..=100 {
res += i;
}
println!("{}", res); // выведет 5050
Границы и старт можно сменить, если нужен другой набор слагаемых. Сложим числа от нуля до четырех без правого края:
let mut total = 0;
for v in 0..5 {
total += v;
}
println!("{}", total); // выведет 10
Циклом можно собирать и строку. Пустую строку задают через
String::from, помечают mut и в теле дописывают кусок
командой push_str. Пусть нужна строка из десяти букв
"x":
let mut text = String::from("");
for _ in 0..10 {
text.push_str("x");
}
println!("{}", text); // выведет xxxxxxxxxx
А теперь соберем строку "12345". Для этого к тексту
прибавляют счетчик цикла:
let mut text = String::from("");
for i in 1..=5 {
text.push_str(&i.to_string());
}
println!("{}", text); // выведет 12345
Дано число:
let last = 5;
Запишите в sum сумму чисел от 1 до last без
правого края. Выведите sum.
Даны переменные:
let mut acc = 0;
let add = 3;
Три раза прибавьте add к acc в переборе 0..3.
Выведите acc.
Дан следующий код:
let mut s = 0;
for x in 2..4 {
s += x;
}
Скажите, какое значение окажется в s после выполнения.
Найдите сумму четных чисел от 2 до 100.
Найдите сумму нечетных чисел от 1 до 99.
Найдите произведение целых чисел от 1 до 20. Для
результата возьмите тип i64, чтобы число поместилось.
С помощью цикла сформируйте строку, заполненную 5 дефисами.
С помощью цикла сформируйте строку "123456789".
С помощью цикла сформируйте строку "987654321", уменьшая
счетчик от 9 до 1.
С помощью цикла сформируйте строку "-1-2-3-4-5-6-7-8-9-".