Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/35: Рейтинг темы: голосов - 35, средняя оценка - 4.66
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90

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

14.11.2012, 21:10. Показов 7615. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана задача.
Выставить цифры в числе 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 минут
Обалдеть. Неужели никто не знает?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.11.2012, 21:10
Ответы с готовыми решениями:

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число
В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими же цифрами. ...

Припишите к 523*** три такие цифры справа ,чтобы полученное шестизначное число делилось на 7,на 8 и на 9 без остатка
Припишите к 523*** три такие цифры справа ,чтобы полученное шестизначное число делилось на 7,на 8 и на 9 без остатка

припишите к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8 и на 9 без остатка
припишите к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8 и на 9 без остатка

41
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
15.11.2012, 18:37  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от I.M. Посмотреть сообщение
Я про код Kuzia domovenok. Его код рабочий.
А ваш код, Parilo, не верен.

Возьмите любое из четырех чисел:
2438195760
3785942160
4753869120
4876391520
и прогоните его через вашу проверку.
А в моём коде где и в чём ошибка? Подскажите если не трудно? Заранее спасибо.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
15.11.2012, 18:40
Вообще, скажите, есть тема, где разбирается подобная проблема? Или никто не сталкивался?
0
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
15.11.2012, 19:00  [ТС]
Цитата Сообщение от Parilo Посмотреть сообщение
А в моём коде где и в чём ошибка? Подскажите если не трудно? Заранее спасибо.
Ну так в чём ошибка если код мой неверен?
0
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
18.11.2012, 18:36  [ТС]
Один из форумчанов сказал мне что мне нужно прокоментировать каждую строку, если хочу чтобы мне помогли.
Вот выкладываю свой код с комментариями. Помогите пожалуйста почему он не работает.

Задание напомню- Выставить цифры в числе 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;
 }
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
18.11.2012, 20:01
да хватит уже с этим кодом возиться
ошибка в 23й строчке. r изменяется от 0 до 403 подумай почему.
Но даже когда ты исправишь ошибку, подумай над своим подходом.
Ты 1) перебираешь ~9 миллиардов чисел, хотя народ решил тебе перебрав лишь порядка 3,5 миллионов перестановок.
2) проверяешь в цикле деление на каждый из 17ти делителей, хотя проверять надо лишь один раз деление на их НОК
короче, тебе предложили более оптимальное решение, чем в лоб.
0
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
18.11.2012, 20:35
Parilo, а где переменной flag возвращается начальное значение?
0
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
19.11.2012, 19:34  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
да хватит уже с этим кодом возиться
ошибка в 23й строчке. r изменяется от 0 до 403 подумай почему.
Но даже когда ты исправишь ошибку, подумай над своим подходом.
Ты 1) перебираешь ~9 миллиардов чисел, хотя народ решил тебе перебрав лишь порядка 3,5 миллионов перестановок.
2) проверяешь в цикле деление на каждый из 17ти делителей, хотя проверять надо лишь один раз деление на их НОК
короче, тебе предложили более оптимальное решение, чем в лоб.
Кузя, не могли бы Вы уточнить почему в 23 строчке r изменяется от 0 до 403? Никак не могу понять, почему?
Я только только учусь и только понимая свои ошибки смогу чему то научиться. Объясните пожалуйста если можете.
Спасибо заранее

Добавлено через 4 минуты
Цитата Сообщение от I.M. Посмотреть сообщение
Parilo, а где переменной flag возвращается начальное значение?
Спасибо, I_M я присвоил начальное значение true переменной flag в конце, но он всё равно не работает. Где то у меня ещё ошибка. Пожалуйста не судите строго что я пишу сложный и тупой код, я только только учусь и пока только разбираюсь на простейших ошибках. Если знаете что именно в моём коде нужно изменить чтобы заработал, подскажите. Только пожалуйста не пишите свой код с применением классов и функций, я знаю что есть много более коротких и правильных путей решить эту задачу, но я хочу понять в своём коде где я ошибаюсь, и для этого я его прокомментировал полностью.
Заранее благодарю.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
20.11.2012, 13:32
Цитата Сообщение от Parilo Посмотреть сообщение
Кузя, не могли бы Вы уточнить почему в 23 строчке r изменяется от 0 до 403? Никак не могу понять, почему?
потому что r перед проверкой очередного числа надо обнулять, а то оно равно нулю только в самом начале программы. Тебе ж надо его обнулять в цикле по i перед каждым вхождением в цикл while, т.е. на строчке 20 надо писать r=0;

Добавлено через 23 минуты
а то сейчас заполняются элементы массива a[0]...a[9] только в первой итерации цикла по i
во второй программа пытается уже заполнить значениями a[10]...a[19], которых не существует

Добавлено через 53 секунды
но сам принцип поиска чисел с неповторяющимися цифрами просто ОООЧЕНЬ нерационален
0
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
20.11.2012, 18:21  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
потому что r перед проверкой очередного числа надо обнулять, а то оно равно нулю только в самом начале программы. Тебе ж надо его обнулять в цикле по i перед каждым вхождением в цикл while, т.е. на строчке 20 надо писать r=0;

Добавлено через 23 минуты
а то сейчас заполняются элементы массива a[0]...a[9] только в первой итерации цикла по i
во второй программа пытается уже заполнить значениями a[10]...a[19], которых не существует

Добавлено через 53 секунды
но сам принцип поиска чисел с неповторяющимися цифрами просто ОООЧЕНЬ нерационален
Кузя спасибо большое за подсказку, я в конце присвоил r начальное значение, но программа всё равно не работает.
Больше нигде ошибок нет? Если нет ошибок то программа должна работать, но она не работает. Никак не пойму.
Где ещё может быть ошибка?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
20.11.2012, 19:21
в чём выражается "не работает"? Или выводит неправильно? Или не компилируется из-за ошибок?Вылетает с похожим на предыдущее окошком? Или просто моргает курсором в консоли и ничего не выводит?

Если последнее, то скорее всего просто ооочень долго считает из-за (как я уже сказал) нерационального алгоритма.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
20.11.2012, 19:52
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
У меня DevCPP тоже глючит. Это исключительно проблемы DevCPP
Дело в том, что переменная divisor и один из элементов массива расположены оказались по одному адресу в памяти.(я вроде не выхожу нигде за границы массива)
Костыль-решение: поменять местами строки
C++
1
2
unsigned long long divisor;
unsigned long long half_life;
На
C++
1
2
[CPP]unsigned long long half_life;
unsigned long long divisor;
[/CPP]
DevCPP это IDE. Из-за IDE такой проблемы не может быть.

Первая попавшая в голову реализация:

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
#include <iostream>
 
 
bool uniqDig( unsigned long long int number ) {
   bool digits[ 10 ] = { false };
   
   unsigned long long int tmp;
   
   while ( number ) {
      tmp = number % 10ULL;
      
      if ( digits[ tmp ])
         return false;
         
      digits[ tmp ] = true;
      
      number /= 10ULL;
   }
   
   return true;
}
 
int main() {
   unsigned long long int divider = 5ULL * 7 * 9 * 11 * 13 * 16 * 17;
   unsigned long long int num = divider;
 
   while ( num < 123456789ULL )
      num += divider;
 
   while ( num < 9876543211ULL ) {
      if ( uniqDig( num ))
         std::cout << num << std::endl;
         
      num += divider;
   }
   
   return 0;
}
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
20.11.2012, 23:20
Цитата Сообщение от Toshkarik Посмотреть сообщение
DevCPP это IDE. Из-за IDE такой проблемы не может быть.
Что, за дурака что ли держишь? Я собственными руками делал и глазами видел, что адреса двух глобальных переменных оказались равны. MSVS себе такого не позволяет!
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
21.11.2012, 06:13
Kuzia domovenok, Вы о чем вообще? Что MSVS, что DevCPP - IDE. Они не компилируют файлы. В поставке с DevCPP идет GCC, в MSVS - microsoft compiler. А IDE всего лишь позволяет удобно редактировать текст исходных файлов. С DevCPP, скорей всего, идет старая версия GCC. Но, похоже, у Вас одного "две переменные расположены по одному адресу".

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
(я вроде не выхожу нигде за границы массива)
А теперь вместо глобального массива int mask[ 10 ]; Попробуйте использовать std::vector mask( 10, 0 );. И каждое обращение замените с mask[ index ] на mask.at( index ). Вы получите исключение out of range, что подтверждает факт выхода за пределы. И расположен он вот в этом кусочке:
C++
1
for (argc^=argc; argc<10; mask[argc]=argc)argc++;
0
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
21.11.2012, 06:36  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
в чём выражается "не работает"? Или выводит неправильно? Или не компилируется из-за ошибок?Вылетает с похожим на предыдущее окошком? Или просто моргает курсором в консоли и ничего не выводит?

Если последнее, то скорее всего просто ооочень долго считает из-за (как я уже сказал) нерационального алгоритма.
Кузя, просто моргает курсором и ничего не выводит. Не может же он так долго считать? Я его 2 часа открытым держал. Я думаю этого времени достаточно чтобы просчитать. А он просто моргает.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
21.11.2012, 07:04
Kuzia domovenok, вдруг если сами не поймете - выражение mask[argc]=argc в этом цикле вычисляется после выполнения тела цикла. Поэтому, когда argc становится 10, сначала вычисляется выражение mask[argc]=argc, а потом уже идет проверка условия продолжения цикла. Вообще изменения счетчиков в теле цикла - не очень хорошая идея.

Parilo, У Вас ошибка в том, что вы используете тип unsigned long, в который числа больше 4 млрд. на помещаются. Используйте unsigned long long. И к большим константам, вроде 9876543210 приписывайте в конце суффикс ull, так как по умолчанию, все целочисленные константы имеют тип int.
1
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
21.11.2012, 09:46  [ТС]
Цитата Сообщение от Toshkarik Посмотреть сообщение
Kuzia domovenok, вдруг если сами не поймете - выражение mask[argc]=argc в этом цикле вычисляется после выполнения тела цикла. Поэтому, когда argc становится 10, сначала вычисляется выражение mask[argc]=argc, а потом уже идет проверка условия продолжения цикла. Вообще изменения счетчиков в теле цикла - не очень хорошая идея.

Parilo, У Вас ошибка в том, что вы используете тип unsigned long, в который числа больше 4 млрд. на помещаются. Используйте unsigned long long. И к большим константам, вроде 9876543210 приписывайте в конце суффикс ull, так как по умолчанию, все целочисленные константы имеют тип int.
Я использую компилятор Visual c++ 6.0 Почему то он у меня не понимает тип unsigned long long. Может попорбовать unsigned long long int? Этот тоже помоему не поймёт, дома вечером проверю. и Ещё ull надо без пробела приписывать слитно с числом?
Можно показать как он приписывается в моём коде если можно?
Спасибо.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
21.11.2012, 09:52
Цитата Сообщение от Parilo Посмотреть сообщение
ull надо без пробела приписывать слитно с числом?
Да, слитно. 9876543210ull.
Цитата Сообщение от Parilo Посмотреть сообщение
Я использую компилятор Visual c++ 6.0
Тогда Вам не решить данную задачу Вашим способом. Эта версия студии не поддерживает новый стандарт, в котором введен тип long long.

PS: я просмотрел полностью Ваш код. В нем очень много ошибок, все их перечислять не буду, вот некоторые:
Не сбрасываете значение flag при проверке нового числа.
Не обнуляете r при проверке нового числа, из-за чего выходите за пределы массива уже на втором числе.
Оператор break относится только к ближайшему циклу или оператору switch. Поэтому будет прерван только цикл for (int y=x+1; y<10; y++)
Оператор continue в конце ни к чему.

И так можно долго.
0
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
24.11.2012, 14:38  [ТС]
Цитата Сообщение от Toshkarik Посмотреть сообщение
Да, слитно. 9876543210ull.

Тогда Вам не решить данную задачу Вашим способом. Эта версия студии не поддерживает новый стандарт, в котором введен тип long long.

PS: я просмотрел полностью Ваш код. В нем очень много ошибок, все их перечислять не буду, вот некоторые:
Не сбрасываете значение flag при проверке нового числа.
Не обнуляете r при проверке нового числа, из-за чего выходите за пределы массива уже на втором числе.
Оператор break относится только к ближайшему циклу или оператору switch. Поэтому будет прерван только цикл for (int y=x+1; y<10; y++)
Оператор continue в конце ни к чему.

И так можно долго.
Тошкарик, спасибо за помощь! Я конечно понимаю, что я чайник в программировании и пока только учусь, ну вот насчёт "так можно долго.." я конечно не согласен))), кроме обнуления r и flag, там больше практически ошибок не было, что я уже сделал. Continue даже если и не нужен, по крайней мере не мешает)).
Ладно, спасибо большое в любом случае. Подскажите пожалуйста какой компилятор лучше всего использовать для таких программ?
Спасибо.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
24.11.2012, 14:45
скачай msvs и не думай о компиляторах
1
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
26.11.2012, 19:46  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
скачай msvs и не думай о компиляторах
Я так думаю MSVS это Microsoft Visual Studio верно?
Я скачал с сайта Майкрософт Microsoft Visual C++ 2010 Express Edition. И также программа не работает, просто мигает курсором.

Код финальный после всех исправлений. Блин запарился с этим кодом. Что делать чтобы работал и ull Добавил и long long поставил. Что тут не так?

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
#include <StdAfx.h> 
#include <iostream>
using namespace std;
 
int main ()
{ int k=0;
  
   int a[10];
   int r=0;
  unsigned long long m;
  unsigned long long n=1000000000ull;
    bool flag=true;
 
  
  for (unsigned long long i=1234567890ull; i<=9876543210ull; i++) 
  {  m=i; 
 
      for (int j=2; j<=18; j++) 
  {  if (i%j==0) k++; } 
      
   
        while (n>0) 
  {
      a[r]=m/n; r++;
            
    m=m%n; n=n/10; 
    
  }  
       for (int x=0; x<9; x++) 
     { for (int y=1; y<10; y++) 
     if (a[x]==a[y]) {flag=false; break;} 
       }  
          continue; 
        
 
     if (k==17 && flag==true) cout << i << " "; 
     k=0; 
     n =1000000000ull;
     if (flag==false) flag=true;
     r=0;
      
     
     
 }
 
return 0;
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.11.2012, 19:46

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

В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами
2. В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами.

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими цифрами
1)В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими же цифрами. 2)Дано...

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наибольшее число, записанное этими же цифрами.
В данном натуральном числе переставить цифры таким образом, чтобы образовалось наибольшее число, записанное этими же цифрами.

В длинном числе изменить только одну цифру так, чтобы новое число делилось на 9
Задано натуральное число, содержащее не более 200 цифр. В этом числе требуется изменить только одну цифру так, чтобы новое число делилось...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru