Верно ли что число содержит ровно три одинаковые цифры - C (СИ)
Формулировка задачи:
Пусть x четырехзначное число, верно ли что оно содержит ровно три одинаковые цифры...
Решение задачи: «Верно ли что число содержит ровно три одинаковые цифры»
textual
Листинг программы
#include <stdio.h>
int main()
{
int x=1112;
int a,b,c,d;
a=x%10; x/=10;
b=x%10; x/=10;
c=x%10; x/=10;
d=x%10;
if( ((a==b)&&(b==c)&&(c!=d)) || ((a==b)&&(b==d)&&(c!=d)) || ((a==c)&&(c==d)&&(c!=b)) || ((b==c)&&(c==d)&&(a!=b)))
printf("3 digits");
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Переменная
xинициализируется значением 1112. - Четыре переменные
a,b,c,dинициализируются значением остатка от деленияxна 10. Это делается для того, чтобы получить каждую цифру числаxв отдельной переменной. - Если условие выполняется, то выводится сообщение
3 digits. Это произойдет только в том случае, если все три цифры в числеxодинаковы. - Возвращается 0, что означает успешный конец работы программы.
Условие в if-выражении проверяет все возможные комбинации трех одинаковых цифр в числе
x. Если все три цифры одинаковы, то условие будет истинным и программа выведет сообщение3 digits. Если хотя бы одна пара цифр одинакова, но третья отличается, то условие будет ложным и программа ничего не выведет.