Найдите все шестизначные числа, в записи которых встречается три стоящих рядом нуля - C (СИ)
Формулировка задачи:
Найдите все шестизначные числа, в записи которых встречается три стоящих рядом нуля.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{int i, c, b, a;
i=0; b=0;
printf("Vvedite chisla\n");
for(; a>0; )
{
scanf("%d",&a);
a/=10;
i=i+1;
}
if((i>6)||(i<6))
printf("\n ne 6znachnoe");
else
{printf("\n 6znachnoe");
for(; a>0; )
{if(a%10==b)
c=c+1;
if(c==3)
printf("chisla s 3 nulyami %d",a);
}
}
return 0;
}Решение задачи: «Найдите все шестизначные числа, в записи которых встречается три стоящих рядом нуля»
textual
Листинг программы
int main(int argc,char** argv)
{
int NN = 0;
int ii = 0;
printf("Enter the number: ");
scanf("%d",&NN);
int Original = NN;
do
{
NN /= 10;
++ii;
}
while (NN);
if (ii != 6)
{
printf("Invalid number\n");
return -1;
}
NN = Original;
for (int jj = 0; jj < 4; ++jj)
{
if ((!(NN % 10)) && (!((NN / 10) % 10)) && (!((NN / 100) % 10)))
{
printf("Found number %d\n",Original);
return 0;
}
NN /= 10;
}
printf("The number is not found\n");
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Инициализируется переменная
NNсо значением 0. - Пользователю предлагается ввести шестизначное число.
- Введенное число сохраняется в переменной
NN. - Код вычисляет, сколько цифр было введено (используя деление и остаток от деления).
- Если было введено не шесть цифр, выводится сообщение об ошибке и возвращается -1.
- Переменная
NNвосстанавливается до исходного значения. - Число проверяется на наличие трех нулей подряд, начиная с десятки, десятки и сотни.
- Если тройные нули найдены, выводится сообщение о том, что число найдено, и возвращается 0.
- Если тройные нули не найдены, выводится сообщение о том, что число не найдено, и возвращается 0.