Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
AlenaShch
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 29
#1

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

23.10.2012, 00:57. Просмотров 947. Ответов 2
Метки нет (Все метки)

Найти все натуральные числа, не превосходящие заданного 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 00:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа, ищущая натуральные числа, делящиеся на каждую из своих цифр (C++):

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

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

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

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

Вывести на экран все двузначные числа, делящиеся на каждую из своих цифр и подсчитать количество таких чисел - C++
Составить программы для решения следующих задач (выполните задание двумя способами: с использованием одного цикла и с использованием...

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

2
polyaKIDze
63 / 63 / 12
Регистрация: 16.07.2012
Сообщений: 147
23.10.2012, 01:34 #2
Используйте один цикл
C++
1
for (int i = 1; i < N; ++i)
Но прежде чем проверять на делимость, нужно вытащить из числа цифры в отдельный массив.
Как это сделать, читайте тут, например.
0
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-ной системы счисления
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2012, 02:29
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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