Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 16:51   #1
Kami-sama
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
Печаль список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр.

На отрезке [A;B] вывести список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр.
Помогите испрвить ошибку.
Код:
Цитата:
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int n=1,sum,k,m;
long int A,B,i;
cout<<"Vvedite chislo A i B:";
cin>>A;
cin>>B;
for(i=A;i<=B;i++)
{
m=i;
sum=0;
if(m/1000>=1 && m/1000<=9)
{
if(m%2>0)
{
while(n<=4)
{
cout<<"m="<<m<<endl;
k=m%10;
sum=sum+k;
m=m/10;
n++;
}
}
}
cout<<"sum="<<sum<<endl;
if(i%sum==0)
cout<<i<<endl;
}
getch();

Последний раз редактировалось Kami-sama; 12.11.2010 в 17:09.
Kami-sama вне форума Ответить с цитированием
Старый 12.11.2010, 17:03   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Неохото в вашем зеленом коде разбираться. Если вам не принципиально, готов предложить свой вариант:
Код:
#include <iostream>

using namespace std;

int main()
{
      int left, right;
      cout << "Input the left and the right: ";
      cin >> left >> right;
      
      if(left < 1000)
            left = 1000;
      if(right > 9999)
            right = 9999;
      
      for(int i=left; i<=right; i++)
      {
            if(i%2)
                  if(i%((int)(i/1000) + i%10 + (i%1000-i%100-i%10)/100 + (i%100-i%10)/10) == 0)
                        cout << i << endl;
      }

      return 0;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 12.11.2010 в 17:06.
Syuf вне форума Ответить с цитированием
Старый 12.11.2010, 17:07   #3
Kami-sama
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
По умолчанию

спс, за ответ.
прошу прощения за опрометчивость только что сам нашел ошибку.
просьба модераторов удалить тему.
Если вдрук кому понадобиться вот исправленный рабочий код:
Цитата:
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int n=1,sum,k,m;
long int A,B,i;
cout<<"Vvedite chislo A i B:";
cin>>A;
cin>>B;
for(i=A;i<=B;i++)
{
n=0;
m=i;
sum=0;
if(m/1000>=1 && m/1000<=9)
{
if(m%2>0)
{
while(n<=4)
{
k=m%10;
sum=sum+k;
m=m/10;
n++;
}
if(i%sum==0)
cout<<i<<endl;
}
}
}
getch();
}

Последний раз редактировалось Kami-sama; 12.11.2010 в 17:11.
Kami-sama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу, определяющую количество чисел, делящихся без остатка на три phoenixSV Паскаль, Turbo Pascal, PascalABC.NET 2 05.12.2008 15:05
Вывод чисел, делящихся на каждую из своих цифр. Паскаль ЯншинаВера Помощь студентам 3 08.04.2008 11:50
Найти сумму положительных нечетных чисел меньше 50 мандаринка Паскаль, Turbo Pascal, PascalABC.NET 8 22.12.2007 21:45