Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmLpAc 87 of 373 menu
◀ ▶

Накопление результата в цикле в 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-".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить