Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
#1

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - C++

24.03.2016, 14:24. Просмотров 276. Ответов 14
Метки нет (Все метки)

программа 1. Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр.
Не понимаю что не так?Какие-то странные ошибки выдает(прервать,продолжить)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    setlocale(LC_ALL,"Russian");
    int n,k,p;//число n я беру как 100
    cout<<"Введите число n: ";cin>>n;
    for(int i=1;i<=n;i++)
    {
        if(i%i==0)//для числ меньше 10
            cout<<i<<endl;
        while(i>9)//для числ больше или равно 10 
        {
            if(i%(i%10)==0)//пример 30:0=0,0-подходит
                if(i%(i/10)==0)//пример 30:3=10,0-подходит
                cout<<i<<endl;
        }   
    }
    _getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2016, 14:24     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Посмотрите здесь:

Найти все натуральные числа, не превосходящие заданного N, которые делятся на каждую из своих цифр - C++
Помогите решить!!!

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - C++
Задание: Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. помогите с 2 частью...

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - C++
программа 1. Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. Программа 2....

Найти все натуральные числа,не превосходящие заданного n,которые делятся на каждую из своих цифр. - C++
Найти все натуральные числа,не превосходящие заданного n,которые делятся на каждую из своих цифр.

Найти все натуральные числа, не превосходящие заданного п, которые делятся на каждую из своих цифр. - C++
Найти все натуральные числа, не превосходящие заданного п, которые делятся на каждую из своих цифр.

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - C++
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. Пожалуйста, укажите на ошибку в...

Найти все натуральные числа, не превосходящие заданного значения N, которые делятся на каждую из своих цифр - C++
Задача 1.3. Разработать программу, которая находит все натуральные числа, не превосходящие заданного значения N, которые делятся на...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
24.03.2016, 14:37     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #2
Цитата Сообщение от Valuamba Посмотреть сообщение
if(i%i==0)//для числ меньше 10 cout<<i<<endl;
это условие уже пропустит любое число, 1,4,11,19,20 и т.д.
Цитата Сообщение от Valuamba Посмотреть сообщение
while(i>9)
а это никогда не выйдет из цикла
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
24.03.2016, 14:44  [ТС]     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #3
Насчет цикла я все понял,но
Цитата Сообщение от КОП Посмотреть сообщение
это условие уже пропустит любое число, 1,4,11,19,20 и т.д.
но про это я что-то не понимаю можно поподробнее как оно пропустит?
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
24.03.2016, 14:49     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #4
Valuamba, а вы выполните в уме, 19%19 = 0 вот и пропустило
Aymurat
97 / 91 / 27
Регистрация: 07.11.2014
Сообщений: 628
Завершенные тесты: 5
24.03.2016, 15:00     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main()
{
    int n;
    cout<<"Vvedite n:"; cin>>n;
    int isave,a,count,schetchik;
    for(int i=1;i<=n;i++)
    {
        if (i%10==0) i++; else {
       if (i<10) cout<<i<<" "; else {
       isave=i;
       schetchik=0;
       count=0;
       while (isave>0)
       {
            a=isave%10; count++; isave=isave/10; if (i%a==0) {schetchik++;}
       }
       if (schetchik==count) cout<<i<<" ";
    }}}
}
Все равно вылет, если n>100, ибо встречаются 101 и т.д., где есть 0. А на ноль делить нельзя. Проверьте, есть ли в числе ноль, если есть - i++;
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
24.03.2016, 15:03     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #6
Aymurat, вы код тестировали?
и бред имеется (строка 10)
и деление на 0 (17) для i = 101
ваши же пункты)
Aymurat
97 / 91 / 27
Регистрация: 07.11.2014
Сообщений: 628
Завершенные тесты: 5
24.03.2016, 15:32     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #7
КОП,
Цитата Сообщение от КОП Посмотреть сообщение
и бред имеется (строка 10)
Уверены, что бред? До 100 будет быстрее тестить, чем проверкой на нули в числе.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
24.03.2016, 15:50     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #8
Цитата Сообщение от Aymurat Посмотреть сообщение
Уверены, что бред? До 100 будет быстрее тестить, чем проверкой на нули в числе.
1. изменение счетчика внутри цикла
2. n = 10, последний вывод будет 11
"Найти все натуральные числа, не превосходящие заданного n"
3. как вы сами заметили, реагирует только на 0 на последней позиции. Какой смысл тестить быстрее, если тест не верен)

Добавлено через 3 минуты
Только заметил, вы потом else подрисовали. Теперь судя по всему 11 просто пропустит
Aymurat
97 / 91 / 27
Регистрация: 07.11.2014
Сообщений: 628
Завершенные тесты: 5
24.03.2016, 15:55     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #9
Цитата Сообщение от КОП Посмотреть сообщение
Только заметил, вы потом else подрисовали. Теперь судя по всему 11 просто пропустит
О каком 11 идет речь, если i<=n? Если даже n=10 цикл закончится на 10
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
24.03.2016, 15:56     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #10
Цитата Сообщение от Aymurat Посмотреть сообщение
О каком 11 идет речь, если i<=n? Если даже n=10 цикл закончится на 10
разумеется речь об n>=11
Aymurat
97 / 91 / 27
Регистрация: 07.11.2014
Сообщений: 628
Завершенные тесты: 5
24.03.2016, 16:34     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #11
Цитата Сообщение от КОП Посмотреть сообщение
разумеется речь об n>=11
Этого не будет, когда в цикле станет i>n - цикл прерывается.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
24.03.2016, 16:36     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #12
Aymurat, n а не i! при n=100 не выведет 11.
Aymurat
97 / 91 / 27
Регистрация: 07.11.2014
Сообщений: 628
Завершенные тесты: 5
24.03.2016, 16:40     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #13
КОП, понял, то есть нужно условие if (i%10!=00) /*и здесь убрать else*/ {...}

А затем внутри {...} проверку на нули.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 762
24.03.2016, 16:43     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #14
Aymurat, вообще вне while не нужна проверка
C++
1
2
3
4
5
6
7
8
9
10
11
for (int i = 1; i <= n; i++)
    {
        int temp = i;
        while (temp > 0)
        {
            int r = temp%10;
            if (r == 0 || i%r !=0) break;
            temp = temp/10;
        }
        if (temp == 0) cout << i << " ";
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2016, 19:50     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Еще ссылки по теме:

Найти все натуральные числа, не превышающие заданного N, которые делятся на каждую из своих цифр. - C++
Найти все натуральные числа, не превышающие заданного N, которые делятся на каждую из своих цифр. Надо решить через функцию .Без массивов.

Найти все натуральные числа, не превосходящие заданного N и делящиеся на каждую из своих цифр - C++
При компиляции выводит какие то числа.Я уверен, что где то ошибка.Но не могу найти. #include&lt;stdio.h&gt; #include&lt;conio.h&gt; int...

Найти все натуральные числа, не превосходящие заданного N и делящиеся на каждую из своих цифр - C++
Помогите, решить задачу &quot; Найти все натуральные числа, не превосходящие заданного N и делящиеся на каждую из своих цифр.&quot; при n &gt; 10 . При...

Найти все натуральные числа, которые делятся на каждую из своих цифр - C++
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. Использовать функции.

Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр - C++
Знайти всі натуральні числа, які не перевищують заданого n і діляться на кожну зі своїх цифр (в десятковій системі числення) Найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
24.03.2016, 19:50  [ТС]     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр #15
Я переделал код чтоб сразу начинать с десятков,но все равно выдает ошибку не понятную
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    setlocale(LC_ALL,"Russian");
    int n,k,p;//число n я беру как 100
    cout<<"Введите число n: ";cin>>n;
    for(int i=10;i<=n;i++)
    {
        k=i;
            if(i%(k%10)==0)
                if(i%(k/10)==0)
                cout<<i<<endl;
        
    }
    _getch();
return 0;
}
Yandex
Объявления
24.03.2016, 19:50     Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru