Форум программистов, компьютерный форум 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
14.11.2012, 21:10     Выставить цифры в числе 1234567890 таким образом, чтобы новое число делилось без остатка на все числа от 2 до 18 включительно.
Дана задача.
Выставить цифры в числе 1234567890 таким образом, чтобы новое число делилось без остатка на все числа от 2 до 18 включительно.

Я написал нижеследующее, но программа выводит почему то такие числа как 12252240, 24504480 и т.д.
Что я тут неправильно написал?

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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
#include <iostream>
using namespace std;
 
int main ()
{ int k=0;
   int a[9];
   int r=0;
  unsigned long int n=1000000000;
  bool flag=true;
  
  for (unsigned long int i=1234567890; i<=9876543210; i++)
 {  while (n>0)
  {
      a[r]=i/n; r++;
            
    i=i-(i/n*n); n=n/10;
    
  }
    
     for (int x=0; x<9; x++)
     { for (int y=x+1; y<10; y++)
         if (a[x]==a[y]) {flag=false; break;}
     }
      
 
     for (int j=2; j<=18; j++)
     {  if (i%j==0) k++; }  
 
 
     if (k==17 && flag==true) cout << i << " ";
     k=0; 
     
 }
 
return 0;
 }
Добавлено через 2 часа 6 минут
неужели никто не знает?


Кто-нибудь поможет сегодня?

Добавлено через 24 минуты
Попробовал изменить таким образом, но всё равно не работает

//////////////////////////////////////////////

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
#include <iostream>
using namespace std;
 
int main ()
{ int k=0;
   int a[9];
   int r=0;
  unsigned long int n=1000000000;
  bool flag=true;
  bool flag2=true;
  
  for (unsigned long int i=1234567890; i<=9876543210; i++)
  {   for (int j=2; j<=18; j++)
  {  if (i%j==0) k++; }  
      if (k!=17) flag2=false; k=0;
      
      while (n>0)
  {
      a[r]=i/n; r++;
            
    i=i-(i/n*n); n=n/10;
    
  }
    
     for (int x=0; x<9; x++)
     { for (int y=x+1; y<10; y++)
         if (a[x]==a[y]) {flag=false; break;}
     }
      
 
     if (flag2==true && flag==true) cout << i << " ";
     
     
 }
 
return 0;
 }
Добавлено через 25 минут
Я подумал, что в самом низу где я вывожу i, i уже потерял своё значение, поэтому добавил дополнительную переменную m и присвоил ему значение i. Но программа всё равно не работает.

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