Преобразовать итерационную функцию в рекурсивную. Проверка на попарное различие цифр в числе - C (СИ)

Формулировка задачи:

bool T(int buf){
    bool flag=true;
    while(buf>0 && flag){
        int x=buf%10;
        buf/=10;
        int bufb=buf;
        while(bufb>0 && flag){
            if(x==bufb%10)
                flag=false;
            bufb/=10;
            }
    }
    if(flag)
        return 1;
    return 0;
}
Проверка на попарно различность цифр в числе. Не глупо ли будет создавать массив из цифр числа? Добавлено через 3 часа 8 минут Я гуглил. Добавлено через 21 час 20 минут Окей, упрощаем до "как задать рекурсию, чтобы она сравнивала значения каждого с каждым элемента массива?"

Код к задаче: «Преобразовать итерационную функцию в рекурсивную. Проверка на попарное различие цифр в числе - C (СИ)»

textual
UniqueDigits(long x)
{
    unsigned short set = 0, temp;
    while(x > 0)
    {
        temp = 1 << (x % 10);
        if (set & temp)
            return 0;
        set |= temp;
        x /= 10;
    }
    return 1;
}

13   голосов, оценка 3.923 из 5


СОХРАНИТЬ ССЫЛКУ