Вертолётов 625
Мудрец
(12892)
1 месяц назад
Для решения задачи о карусели с фотографиями на C++, можно использовать математическую формулу для вычисления следующего номера фотографии без использования операторов управления потоком, таких как `if`, `while`, `for` и тернарного оператора `?`.
### Алгоритм
1. **Входные данные**:
- `n` — общее количество фотографий.
- `m` — номер текущей фотографии.
2. **Логика**:
- Если текущая фотография `m` меньше последней (`n`), то следующая будет просто `m + 1`.
- Если `m` равно `n`, то следующей будет первая фотография (номер 1).
### Формула
Можно выразить следующий номер фотографии с помощью формулы:
$$\text{next} = (m \mod n) + 1$$
### Программа на C++
Вот пример кода, который реализует данную логику:
```cpp
#include <iostream>
using namespace std;
int main() {
long long n, m;
cin >> n >> m;
cout << (m % n) + 1 << endl;
return 0;
}
```
### Пояснение кода
- **Ввод**: Программа считывает два числа: общее количество фотографий `n` и номер текущей фотографии `m`.
- **Вывод**: С помощью формулы `(m % n) + 1` вычисляется номер следующей фотографии и выводится на экран.
Таким образом, программа корректно обрабатывает все возможные случаи, включая переход от последней фотографии к первой.
На странице сайта размещена карусель с фотографиями. Фотографии в каруселе пронумерованы от 1 до n. Карусель содержит кнопки вперед и назад. При нажатии кнопки вперед, в карусель загружается следующая фотография (фотография с номером на 1 больше). Если в каруселе отображается последняя фотография (с номером n), то при нажатии кнопки вперед загружается первая фотография (фотография с номером 1).
Всего карусель содержит n фотографий. Посетитель сайта сейчас просматривает фотографию с номером m. Фотография под каким номером загрузится в карусель, если посетитель нажмет один раз кнопку вперед?
Формат входных данных
Программа получает на вход две строки. В первой строке записано натуральное число n (n < 109). Во второй - натуральное число m (1≤ m ≤ n).
Формат выходных данных
Выведите одно число - номер следующей фотографии.
Запрещенные операторы: if; while; for; ?
НА С++