Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
7 / 7 / 5
Регистрация: 27.07.2011
Сообщений: 32
1

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

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

Author24 — интернет-сервис помощи студентам
Помогите, решить задачу " Найти все натуральные числа, не превосходящие заданного 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. Подскажите , как лучше реализовать эту программу и подскажите, где ошибки. Заранее большое спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2013, 17:33
Ответы с готовыми решениями:

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

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

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

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

2
544 / 93 / 49
Регистрация: 16.12.2011
Сообщений: 317
12.10.2013, 22:28 2
Лучший ответ Сообщение было отмечено Scorpik1 как решение

Решение

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;
}
0
109 / 107 / 44
Регистрация: 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");
}
0
12.10.2013, 23:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2013, 23:02
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru