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

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

Восстановить пароль Регистрация
 
AlenaShch
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 29
23.10.2012, 00:57     Программа, ищущая натуральные числа, делящиеся на каждую из своих цифр #1
Найти все натуральные числа, не превосходящие заданного N, и делящиеся на каждую из своих цифр.
Программа запускается, идет, но если в циклах задавать начальное значение 0, то не работает. Еще циклы не позволяют число более длинным (в моем случае число получается четырехзначным). Можно как-нибудь изменить это? Если у меня четыре цикла, то при вводе трехзначного числа (даже если в первом цикле задаю начальное значение 0), то программа закрывается. Почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <locale>
using namespace std;
 
void main()
{setlocale (LC_ALL, "Russian");
unsigned int j,i,k,l,N,a;
cout<<"Введите натуральное число N \n";
cin>>N;
    while (N==0)
        {cout<<"N введено неверно. Пожалуйста, повторите ввод. N равно \n";
        cin>>N;
        }
    for(i=1;i<=9;i++)
        for (j=1;j<=9;j++)
            for (k=1;k<=9;k++)
                for (l=1;l<=9;l++)
                {a=1000*i+100*j+10*k+l;
                    if(a<=N&&a%i==0&&a%j==0&&a%k==0&&a%l==0)
                        cout<<"Число равно "<<a<<endl;
                }
        cout<<endl<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 00:57     Программа, ищущая натуральные числа, делящиеся на каждую из своих цифр
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
polyaKIDze
63 / 63 / 12
Регистрация: 16.07.2012
Сообщений: 147
23.10.2012, 01:34     Программа, ищущая натуральные числа, делящиеся на каждую из своих цифр #2
Используйте один цикл
C++
1
for (int i = 1; i < N; ++i)
Но прежде чем проверять на делимость, нужно вытащить из числа цифры в отдельный массив.
Как это сделать, читайте тут, например.
yleart
 Аватар для yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
23.10.2012, 02:29     Программа, ищущая натуральные числа, делящиеся на каждую из своих цифр #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
typedef unsigned short ushort;
bool CheckDiv (const ushort);
int main() {
    std::cout << "Enter N: ";
    ushort N;
    std::cin >> N;
    for (ushort i = 1; i < N; ++i) {
        if (CheckDiv(i))
            std::cout << std::hex << i << " ";
        else
            continue;
    }
    system("pause");
    return 0;
}
bool CheckDiv (const ushort num) {
    ushort mask = 0xF;
    ushort current_dig = num&mask; 
    for (ushort i = 1; i < 4; ++i) {
        if (current_dig) {
            if (!(num%current_dig))
                current_dig = num&(mask<<(i>>2));
            else
                return false;
        }
        else
            return false;
    }
    return true;
 
}
Для 16-ной системы счисления
Yandex
Объявления
23.10.2012, 02:29     Программа, ищущая натуральные числа, делящиеся на каждую из своих цифр
Ответ Создать тему
Опции темы

Текущее время: 08:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru