C++: Одинаковы ли цифры в числе

В некоторых задачах требуется определить, одинаковые ли цифры в числе или нет. Сделать это можно при помощи следующей функции:

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;
}
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, дальше можно не проверять, в числе встретилось «левое» число. Если все прошли, а условие не выполнилось, тогда число действительно состоит из одинаковых цифр :)

Добавить комментарий