Определить максимальное четное число, которое делится на 3, среди введенных пользователем чисел. При условии, что он вводил натуральные числа. Признаком остановки ввода служит число 0. ПАСКАЛЬ
Квадратное уравнение имеет вид: ах^2 + bx + c = 0. (1)здесь а, b и с – коэффициенты. сначала надо вычислить дискриминант квадратного уравненияd = (b^2 – 4ac) (2)если d > 0, то квадратное уравнение имеет два корня х1 и х2. обозначим с = корень(d). то есть надо вычислить квадратный корень из d. имеем такие решениях1 = (–b + c)/(2a) и x2 = (–b – c)/(2a). (3)если дискриминант d = 0, то c = 0 и оба корня одинаковы х1 = х2 (хотя в школе обычно говорят, что имеется только одно решение) и вычисляются по формулех1 = х2 = –b/(2a). (4). эта формула следует из формулы (3) при с = d = 0.если дискриминант d меньше нуля, то корень из d вычислить нельзя, с будет мнимым числом. вообще говоря, корни есть (2 штуки), но они будут мнимыми числами. хотя в школе учат, что в этом случае корней нет. так и будем считать, что корней нет.алгоритм решения будет следующий но только здесь дискриминант d обозначен малой буквой d
Можно конечно поизвращаться и придумать интересный алгоритм, но можно просто написать в лоб цикл с проверкой.
#include <iostream> int main(){ int num_1, num_2; cin >> num_1 >> num_2; for (int i = num_1 + 1; i != num_2; i++) { int cur = i, num = i; int res = 0; while (cur != 0) { int mod_n = cur % 10; if (mod_n == 0) { break; } if (num % mod_n == 0) { res = 1; } else { res = 0; break; } cur /= 10; } if (res) { cout << i << ' '; } } }
Коротко, в двух словах, о чем тут код. мы проходим по циклу от A до B, для каждого числа, в цикле проверяем, делится ли оно на цифры из которых состоит. Для этого мы запоминаем в отдельную переменную cur наше число, и проверяем остаток от деления на 10 (т.е. самую левую цифру), после мы в cur записываем тоже число, но без последней цифры. на примере 124. проверяем на делимость на 4, потом запоминаем 12, проверяем на делимость на 2, потом запоминаем 1, проверяем на делимость на 1, потом записываем 0. Как только видим 0 прекращаем. Дальше в цикле есть проверка на то, что если хоть раз что-то не поделилось, то переходим к след. числу
#include <iostream>
int main(){
int num_1, num_2;
cin >> num_1 >> num_2;
for (int i = num_1 + 1; i != num_2; i++) {
int cur = i, num = i;
int res = 0;
while (cur != 0) {
int mod_n = cur % 10;
if (mod_n == 0) {
break;
}
if (num % mod_n == 0) {
res = 1;
}
else {
res = 0;
break;
}
cur /= 10;
}
if (res) {
cout << i << ' ';
}
}
}
Коротко, в двух словах, о чем тут код.
мы проходим по циклу от A до B, для каждого числа, в цикле проверяем, делится ли оно на цифры из которых состоит. Для этого мы запоминаем в отдельную переменную cur наше число, и проверяем остаток от деления на 10 (т.е. самую левую цифру), после мы в cur записываем тоже число, но без последней цифры.
на примере 124. проверяем на делимость на 4, потом запоминаем 12, проверяем на делимость на 2, потом запоминаем 1, проверяем на делимость на 1, потом записываем 0. Как только видим 0 прекращаем.
Дальше в цикле есть проверка на то, что если хоть раз что-то не поделилось, то переходим к след. числу