В некоторых задачах требуется определить, одинаковые ли цифры в числе или нет. Сделать это можно при помощи следующей функции:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
bool isOnesNumber(int N) { int d=0, dold =0; dold = N % 10; while (N != 0) { d = N % 10; if (d != dold) { return false; } N = N / 10; dold = d; } return true; } |
Идея: Каждая цифра в числе равна предыдущей, и если все равны тогда число состоит из одних и тех же цифр.
Тогда нужно сравнивать с предыдущей. У меня это dold. Сначала я вношу в него первое число, потом в цикле перебираю числа, если d не сошлось с dold, дальше можно не проверять, в числе встретилось «левое» число. Если все прошли, а условие не выполнилось, тогда число действительно состоит из одинаковых цифр :)