Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Натуральные числа


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

Код


#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n,i,r;
cin>>n;
for(i=1;i<n;i++)
{
r=n%10;
if(i%r==0)
i=i/10;
else
i++;
}
cout<<i;

    return 0;
}


Автор: Kuvaldis 22.12.2006, 02:18

 ! 
Kuvaldis

Нехорошо игнорировать требования модератора о правильности написания темы. Нужно указывать ЯЗЫК ПРОГРАММИРОВАНИЯ!!!! в названии темы. Повторное нарушение вызовет репрессии  

Автор: Denzel666 22.12.2006, 02:57
Цитата

 ! 
Kuvaldis    
Нехорошо игнорировать требования модератора о правильности написания темы. Нужно указывать ЯЗЫК ПРОГРАММИРОВАНИЯ!!!! в названии темы. Повторное нарушение вызовет репрессии  





Ошибку понял...исправлюсь!


Автор: Kuvaldis 22.12.2006, 05:32
Код

#include <iostream>
using namespace std;
 
int main()    
{    
    int n, i;
    int num;
    int digit;

    cin >> n;    
    // цикл по всем числам из отрезка
    for (i = 1; i < n; i++)    
    {  
       // проверка в качестве исходного числа num берем i  
       num = i;
       // путем целочисленного деления получаем все цифры числа
       while (num)
       {
            
            digit = num % 10;     // получить самую левую цифру
            // проверить на делимость, если не делится или 0, то выйти из цикла (на 0 делитб низя)         
            if ((digit == 0) || (i % digit))
               break;
            // уменьшить число в 10 раз для получения на след. шаге очередной цифры
            num /= 10;
       }
       // если после выхода из цикла num =0, значит исходное число разделилось на все свои цифры
       if (!num) cout << i << endl;
        
    }    
    cin.get();    
    return 0;    
}

Автор: Denzel666 23.12.2006, 00:29
А можно с комментариями...?Я в 18 строчке не совсем понял что происходит с числами...

Цитата
Код

if ((digit == 0) || (i % digit))




Вот это:   
Код

(i % digit)



Автор: Kuvaldis 23.12.2006, 01:40
Denzel666, 
Цитата

А можно с комментариями...

Добавил комментарии. Смотри исходник

Автор: Denzel666 23.12.2006, 02:10
Душевно...Благодарствую...Респект Kuvaldis'у

Добавлено @ 02:11 
Тема закрыта

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)