Например: 643000. Чтобы найти сумму этих чисел нам надо сложить все числа указанные в числе. Получится: 6+4+3+0+0+0=13
Можно конечно поизвращаться и придумать интересный алгоритм, но можно просто написать в лоб цикл с проверкой.
#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 прекращаем.
Дальше в цикле есть проверка на то, что если хоть раз что-то не поделилось, то переходим к след. числу
<u>// PascalABC.NET 3.2, сборка 1353 от 27.11.2016</u>
<u>// Внимание! Если программа не работает, обновите версию!</u>
begin
var a:=ReadArrInteger('Вводите:',ReadInteger('n='));
Writeln('Различных элементов- ',a.Distinct.Count)
end.
<em>Пример</em>
n= 10
Вводите: 456 12 6432654 -35424 -323421341 0 6432654 634222 -234532 34
Различных элементов- 9
Program points;
uses crt;
var x, y:real;
begin
write('Введите х: ');
readln(x);
write('Введите y: ');
readln(y);
if (x > 0) and (y > 0) then
writeln('<span>Точка с координатами (' , x , ',' , y , ') лежит в первой четверти координатной плоскости</span>')
else
writeln('<span>Точка с координатами (' , x , ',' , y , ') не лежит в первой четверти координатной плоскости</span>');
readln
end.