Задача. Нужно найти все натуральные числа на отрезке [a;b] которые делятся на все свои цифры. Например. a=13, b=20. Вывод: 15.
Я её решил, но когда отправляю вижу, что программа не прошла ни одного теста. В чём же ошибка?
#include
using namespace std;
int main()
{
int a,b,j,h;
bool r=0;
j=1;
cin >> a >> b;
if (a!=b)
for (int i=a;i<=b;i++)
{
while (i/j>=1)
{
j=j*10;
h=(i%j)/(0.1*j);
if (h==0)
{
r=1;
break;
}
if (i%h!=0)
{
r=1;
break;
}
}
if (r!=1)
cout << << i;
r=0;
j=1;
}
return 0;
}
Можно реализовать интереснее, чтобы показывало делятся ли на свои элементы все числа на заданном промежутке.
[THIDE="0"]#include <stdio.h>
int isValueDivOnItsDigits(int val);
int main()
{
int n = 0;
int i = 0;
printf("n = ");
if(!scanf("%d",&n))
printf("Input error\n");
else
{
for(i = 0; i < n; i = i + 1)
{
printf("Value : %d ", i);
if(isValueDivOnItsDigits(i))
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}