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

Выставить цифры в числе 1234567890 таким образом, чтобы новое число делилось без остатка на все числа от 2 до 18 включительно. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив: Учащиеся участвовали в посадке деревьев. Сколько деревьев было посажено http://www.cyberforum.ru/cpp-beginners/thread697558.html
1)Учащиеся 8-х классов участвовали в посадке деревьев. 8-а посадил 100 деревьев, 8-б —122 дерева, 8-в — 98 деревьев, 8-г — 104 дерева, 8-д — 121 дерево. Определить, сколько посажено деревьев.
C++ проверьте программу,пожжалуйста;) Сначала нужно ввести таблицу, в которой первое поле название, второе- группа, третье- место обитания, четвертое- численность..))) А потом сортировка по первому столбцу по алфавиту, с чем собственно и проблема( #include <stdio.h> #include <stdlib.h> const int n=7; int i,j; struct a1{ //объявляем структуру char name; char grup; char mesto; int chisl; http://www.cyberforum.ru/cpp-beginners/thread697548.html
Ошибка в проекте C++
Первый файл проекта:int stepen(int x,int y);Второй файл проекта:#include "func.h" int stepen(int x,int y) { int z,i; z=x; for (i=1;i<y;i++) z=z*x; return z;} Третий файл проекта :
комплексные числа C++
у меня функция принимает только числа с плюсом, как разрешить ввод и вывод с минусом , например 4-5i void first_complex_number(int &real1, int &image1) { cout << "a+b:"; cin >> real1; cin.ignore(5,'+'); cin >> image1; cin.ignore(5,'i'); cout << "You entered: " << real1 << "+" << image1 << "i" << endl;
C++ Полиморфные функции http://www.cyberforum.ru/cpp-beginners/thread697542.html
Всем привет, случалась такая проблема. Есть абстрактный класс class Abstract{ //Абстрактный класс public:virtual void print_msg()=0; }; нужно создать полиморфнуу функцию операндом которой будет абстрактный класс,у меня не получаеться..помогите
C++ Двумерный массив Нужно написать программу, которая транспонирует матрицу, предварительно введённую с клавиатуры пользователем. подробнее

Показать сообщение отдельно
Parilo
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
18.11.2012, 18:36  [ТС]     Выставить цифры в числе 1234567890 таким образом, чтобы новое число делилось без остатка на все числа от 2 до 18 включительно.
Один из форумчанов сказал мне что мне нужно прокоментировать каждую строку, если хочу чтобы мне помогли.
Вот выкладываю свой код с комментариями. Помогите пожалуйста почему он не работает.

Задание напомню- Выставить цифры в числе 1234567890 таким образом чтобы новое число делилось без остатка на все числа от 2 до 18.

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
#include <iostream>
using namespace std;
 
int main ()
{ int k=0;
  
   int a[10];
   int r=0;
  unsigned long int m;
  unsigned long int n=1000000000;
    bool flag=true;
 
  
  for (unsigned long int i=1234567890; i<=9876543210; i++) // запускаем цикл проверки от 1234567890 до 9876543210.
  {  m=i; // присваиваем значение i переменной m, чтобы работать в цикле while ниже
 
      for (int j=2; j<=18; j++) // запускаем второй цикл for для проверки делится ли i на все числа от 2 до 18.
  {  if (i%j==0) k++; } // если делится k увеличиваем на +1.
      
   
        while (n>0) // запускаем цикл while чтобы
  {
      a[r]=m/n; r++;// определить каждую отдельную цифру числа m которой мы присвоили значение i в начале.
            
    m=m%n; n=n/10; // при этом уменьшаем n на 1/10 и m меняем каждый раз присваивая элементу массива a[r] каждую цифру числа i начиная с первого числа.
    
  }  
       for (int x=0; x<9; x++) // здесь мы запускаем 2 цикла for для проверки
     { for (int y=x+1; y<10; y++) // чтобы ни один из 10 элементом массива a[], то есть цифры числа не совпадали друг с другом.
     if (a[x]==a[y]) {flag=false; break;} // если же будет хоть одно совпадение, то flag присвоить false.
       }  
 
        
 
     if (k==17 && flag==true) cout << i << " "; // здесь мы выводим если переменная K равен 17, то есть делится без остатка 17 раз от 2 до 18 и flag равно true, то есть если все цифры в числе разные вывести i. 
     k=0; // присваиваем переменной k начальное значение 0, так как выше мы её успели изменить.
     n =1000000000;// присваиваем переменной n начальное значение 1000000000, так как выше мы её успели изменить.
     continue; // продолжаем цикл, так как выше мы поставили break
     
     
 }
 
return 0;
 }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru