Как проверить, содержит ли int var определенное число - PullRequest
6 голосов
/ 12 февраля 2011

Как проверить, содержит ли int var определенное число

Не могу найти решение для этого.Например: мне нужно проверить, содержит ли где-нибудь int 457 номер 5.

Спасибо за вашу помощь;)

Ответы [ 3 ]

14 голосов
/ 12 февраля 2011
457 % 10 = 7    *

457 / 10 = 45

 45 % 10 = 5    *

 45 / 10 = 4

  4 % 10 = 4    *

  4 / 10 = 0    done

Получите?

Вот реализация C алгоритма, который подразумевает мой ответ.Он найдет любую цифру в любом целом числе.По сути, он точно такой же, как и ответ Шакти Сингха, за исключением того, что он работает для отрицательных целых чисел и останавливается, как только найдена цифра ...

const int NUMBER = 457;         // This can be any integer
const int DIGIT_TO_FIND = 5;    // This can be any digit

int thisNumber = NUMBER >= 0 ? NUMBER : -NUMBER;    // ?: => Conditional Operator
int thisDigit;

while (thisNumber != 0)
{
    thisDigit = thisNumber % 10;    // Always equal to the last digit of thisNumber
    thisNumber = thisNumber / 10;   // Always equal to thisNumber with the last digit
                                    // chopped off, or 0 if thisNumber is less than 10
    if (thisDigit == DIGIT_TO_FIND)
    {
        printf("%d contains digit %d", NUMBER, DIGIT_TO_FIND);
        break;
    }
}
4 голосов
/ 12 февраля 2011
int i=457, n=0;

while (i>0)
{
 n=i%10;
 i=i/10;
 if (n == 5)
 {
   printf("5 is there in the number %d",i);
 }
}
4 голосов
/ 12 февраля 2011

Преобразуйте его в строку и проверьте, содержит ли строка символ «5».

...