Страницы

Поиск по вопросам

понедельник, 10 февраля 2020 г.

Помогите составить легкую программу на C++

#cpp


Дано натуральное число N (N<=109). Определить сколько раз в нем встречается последняя
цифра (без учета последней цифры).

#include 
#include 
main()
{
    int N,i,c;
    scanf ("%d", &N);
    i=0;
    c=N%10;
    while (N%10 >= 0)
    {
        N=N%10; 
        i++;
    }
    printf ("%d", i);
}


Программа зацикливается. Почему?
    


Ответы

Ответ 1



cin >> n; int last = n%10; n /= 10; int count = 0; while(n) { if (n%10 == last) count++; n /= 10; } cout << count; Где-то так... Если вы имеете в виду, что в числе 1254423452331212 последняя цифра встречается 4 раза. Ваша программа не может не зацикливаться, так как с какого-то момента переменная цикла не меняется (когда становится одной цифрой, N%10 равно N), и условие остается истинным...

Ответ 2



N=N%10; В этом месте должно быть деление, а не остаток. Зацикливается из-за того, что остаток от деления на 10 никогда не меняется. PS: А ещё код не дописан - не хватает собственно проверки на равенство последней цифре.

Комментариев нет:

Отправить комментарий