Задача на цикл - C (СИ)
Формулировка задачи:
ребят нужно решить одну задачу на си только без массива (Среди натуральных чисел, больших 99 и не превосходящих
заданного числа n, найти такие, цифры которых образуют
арифметическую прогрессию.)заранее большое спасибо.
Решение задачи: «Задача на цикл»
textual
Листинг программы
int v = 753; // для примера
bool arithm = true;
int last_digit = v % 10;
int diff = 0;
for (int i = 0; i < 100; i++){ // 100 - максимальное число знаков ;)
if (i == 1){
diff = last_digit - v % 10;
last_digit = v % 10;
} else {
if (diff != last_digit - v % 10){
arithm = false;
break;
} else {
last_digit = v % 10;
}
v /= 10;
if (v == 0){
break;
}
}
// ну и здесь переменная arithm будет иметь правильное значение.
Объяснение кода листинга программы
- Объявлены переменные: v = 753, arithm = true, last_digit = v % 10, diff = 0.
- Запущен цикл for от 0 до 100.
- Проверка: если i = 1, то diff = last_digit - v % 10, last_digit = v % 10.
- В противном случае: проверка diff не равна last_digit - v % 10. Если это так, то arithm = false и выход из цикла.
- Если проверка не выполнилась, то last_digit = v % 10, v /= 10.
- Если v = 0, то выход из цикла.
- По завершению цикла, переменная arithm будет иметь правильное значение.