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

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

Войти
Регистрация
Восстановить пароль
 
Scorpik1
7 / 7 / 4
Регистрация: 27.07.2011
Сообщений: 30
#1

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

12.10.2013, 17:33. Просмотров 850. Ответов 2
Метки нет (Все метки)

Помогите, решить задачу " Найти все натуральные числа, не превосходящие заданного N и делящиеся на каждую из своих цифр." при n > 10 . При n< 10 Мы используем for (i=1; i<=n; i++) printf("%d,",i);
Я пытался реализовать задачу вот так :
C++ (Qt)
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
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <Windows.h>
int main(){
    int i, n, kol, soxranx, soxranx1, j, k, sum;
    int delitel[5];
    printf("Vvedi chislo n=");
    scanf("%d",&n);
    kol=2;
    soxranx= n;
    soxranx1= n;
    sum=0;
    if(n<10) for (i=1; i<=n; i++) printf("%d,",i);
    if(10<=n){
    for (i=1; i<10; i++) printf("%d,",i);
    do{
        kol=kol+1;
        soxranx=soxranx/10;
 
    }while(soxranx =0);
    
    for (i=10; i<=n; i++){
        for (j=1; j<=kol; j++){
        delitel[j]=soxranx1%10;
        if(delitel[j]==0) break;
        soxranx1=soxranx1/10;
        }
        for(k=1; k<=kol; k++){
            if(delitel[k]==0) {break;}
            else{ sum= sum+1;}
            if(sum==kol) printf("%d", n);
            }
                        sum=0;
 
        n=n+1;
    }
}
    system("pause");
 
    return 0;
}
Но, у меня она не работает при n>10. Подскажите , как лучше реализовать эту программу и подскажите, где ошибки. Заранее большое спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2013, 17:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти все натуральные числа, не превосходящие заданного N и делящиеся на каждую из своих цифр (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
12.10.2013, 22:28 #2
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
33
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
 
int main() {
    int n = 0;
    cout << "enter n: ";
    cin >> n;
    if(n >= 10) {
        for(int i = 1; i < n; i++) {
            char buf[10];
            char *string = itoa(i, buf, 10);
            bool flag = true;
            for(int j = 0; j < strlen(string); j++) {
                char digit[2];
                sprintf(digit, "%c", string[j]);
                if(digit[0] == '0')
                    continue;
                if(i % atoi(digit) != 0) {
                    flag = false;
                    break;
                }
            }
            if(flag)
                printf("%d,", i);
        }
    } else
        for(int i = 0; i < n; i++)
            printf("%d,", i);
    system("pause");
    return 0;
}
Hoottie_McGOOB
107 / 105 / 5
Регистрация: 04.10.2013
Сообщений: 231
12.10.2013, 23:02 #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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdafx.h>
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int N;
    cout<<"Введите N: ";
    cin>>N;
 
    int p=1;
    int z;
    int m;
 
    bool is_true_digit = true;
 
    for(int i=1; i<=N; i++)
    {
        m = i;
        is_true_digit = true;
 
        if(m<10)
        {
            cout <<p<<": "<<i<<endl;
            p++;
        }
 
 
        if(m>=10)
        for(;;)
        {
            z = m%10;
 
            if(z==0) break;
            
            m=(m-m%10)/10;
 
            if(i%z!=0) is_true_digit = false;
            if (m<10)
            {
                if(m==0) break;
                if(i%m!=0) is_true_digit = false;
            }
 
            if(m<10)
            if(is_true_digit == true)
            {
                cout <<p<<": "<<i<<endl;
                p++;
                break;
            }
        }
        
    }
 
  system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2013, 23:02
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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