Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 16.04.2013
Сообщений: 49

Найти наибольшее число

11.11.2014, 20:51. Показов 3373. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти наибольшее число, все цифры которого различны, а их произведение равно 360.

Прошу помочь в реализации написания программы.
Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2014, 20:51
Ответы с готовыми решениями:

Найти наибольшее отрицательное число и наименьшее положительное число среди 6 чисел
Даны шесть целых чисел. Найдите наибольшее отрицательное число и наименьшее положительное число среди них. Гарантируется, что среди них...

найти наибольшее число из 3
вот код с помощью которого ищу наибольшее int max, num1, num2, num3; cin >> num1 >> num2 >> num3; if(num1 > num2){ max =...

Найти наибольшее число
Дано целое число x (99 < x < 9 000 000). Определить: входят ли в него цифры 5 и 6 ( это я понял как ) наибольшую цифру, которая в него...

17
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 2
11.11.2014, 21:17
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
#include <iostream>
#define N 9
using namespace std;
 
 
int main(){
 
int mas[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int otvet, proba, a, b, c;
 
    for(int i=0; i<N; i++){
            for(int j=i+1; j<N-1; j++){
                for(int z=j+1; z<=N; z++){
                    proba = mas[i] * mas[j] * mas[z];
                    if(proba == 360){
                            a = i;
                            b = j;
                            c = z;
                            otvet = proba;
                            break;
                    }
                }
            }
    }
 
 
cout << mas[a] << " * " << mas[b] << " * " << mas[c] << " = " << otvet << endl;
 
 
return 0;
}
Пожалуйста.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
11.11.2014, 21:32
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
...
main()
{ ....
for(i=9; i>=3; i--)
 for(j=i-1;j>=2;j--)
  for(z=j-1;z>=1; z--)
   if (i*j*z==360) {
    cout << 100*i+10*i+z << endl;
    return 0;
  }
 cout << "Netu" << endl;
 return 0;
}
0
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 2
11.11.2014, 21:40
Я вначале не правильно понял задание.
Вот рабочий код
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 <iostream>
#define N 9
using namespace std;
 
 
int main(){
 
int mas[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int chislo[3];
int otvet, proba, tmp;
 
    for(int i=0; i<N; i++){
            for(int j=i+1; j<N-1; j++){
                for(int z=j+1; z<=N; z++){
                    proba = mas[i] * mas[j] * mas[z];
                    if(proba == 360){
                            chislo[0] = i+1;
                            chislo[1] = j+1;
                            chislo[2] = z+1;
                            break;
 
                    }
                }
            }
    }
 
 
 
 
 
 
 
    for(int i=0; i<3; i++){
       for(int j=i+1; j<3; j++){
            if(chislo[i] < chislo[j])
                tmp = chislo[i];
                chislo[i] = chislo[j];
                chislo[j] = tmp;
       }
}
 
otvet = chislo[0] * 100 + chislo[1]*10 + chislo[2];
 
cout << otvet << endl;
 
return 0;
}
В итоге получается, что наибольшее число, произведение цифр которого 360, это 985
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,984
Записей в блоге: 32
11.11.2014, 22:19
Прочитал название темы, в голове сразу всплыл светлый образ числа 9851, и даже лениво кота писать.
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.11.2014, 10:32
Цитата Сообщение от _Ivana Посмотреть сообщение
светлый образ числа 9851
Да, отчего-то втемяшилось в голову, что число трехзначное...

Добавлено через 8 часов 2 минуты
65431

Добавлено через 3 часа 29 минут
Это всплыло само, без кода.
А кодом можно так
C++
1
2
3
4
5
6
7
8
9
10
otvet = 0;
for(k=1; k<512; k++) {
  for(n=i=0, p=1; i<9; i++)
    if (k&(1<i)) {
      n = 10*n + i + 1;
      p *=(i+1);
    }
  if (p==360 && n>otvet) otvet=n;
}
cout << otvet;
2
12.11.2014, 19:15

Не по теме:

Мое кунг-фу интуиция слабее вашей, я лохЪ! :)

0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
12.11.2014, 21:00
На самом деле это число 95421.
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
#include <iostream>
 
int max = -1;
 
void Go(int rem, int num = 0)
{
    if(rem == 1)
    {
        if(num > max)
            max = num;
    }
    int to = num ? num % 10 - 1 : 9;
    for(int i = 1; i <= to; ++i)
        if(rem % i == 0)
            Go(rem / i, num * 10 + i);
}
 
 
int main()
{
    Go(360);
    std::cout << max << std::endl;
    return 0;
}
3
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.11.2014, 21:30
_Ivana, странно. Получил в почту сообщение в теме и ваше число 5332221 Но придя по ссылке в тему, вашего поста не обнаружил. Очевидно, оно не удовлетворяют условиям (цифры разные), но куда пропал ваш пост?
А вот Dani - молодец! Интересно, кто больше? Своего кода я не запускал. Видимо, зря.
И еще что меня смущает. Память у меня еще хорошая. И первоначально, божиться готов!, там фигурировало трехзначное число. Ну не мог я это не заметить в такой несложной формулировке! Да и пост #2 косвенно показывает, что было 3 знака! Детектив, да и только!
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
12.11.2014, 21:39
Цитата Сообщение от _Ivana Посмотреть сообщение
9851
Тут даже можно было заметить, что 8 = 2*4 и записать 95421
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.11.2014, 21:43
Однако, в моем коде были ошибки. (небрежность, простите!)
Вот это работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
main()
{ int i, k; long n, p, otvet;
 
otvet = 0;
for(k=1; k<512; k++) {
  for(n=0, i=8, p=1; i>=0; i--) {
    if (k&(1<<i)) {
      n = 10*n + i + 1;
      p *=(i+1);
    }
  }
  if (p==360 && n>otvet) otvet=n;
}
printf("%ld\n", otvet);
}
и подтверждает выводDani
Да, любопытный топик получился...
1
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
12.11.2014, 22:30
Во-первых, число не может состоять более чем из 5 цифр, так как 1*2*3*4*5 уже равно 120.
Во-вторых, должно заканчиваться на 1.
В результате получаем такой быдло-код:
C++
1
2
3
4
5
6
7
8
9
  for (unsigned int i = 98761; i >= 54321; i-=10)
    if ((i%10 != i/10000) && (i%10 != i/1000%10) && (i%10 != i/100%10) && (i%10 != i/10%10) &&
        (i/10000 != i/1000%10) && (i/10000 != i/100%10) && (i/10000 != i/10%10) &&
        (i/1000%10 != i/100%10) && (i/1000%10 != i/10%10) && (i/100%10 != i/10%10))
      if ((i%10) * (i/10000) * (i/1000%10) * (i/100%10) * (i/10%10) == 360)
      {
        return i;  // 95421
        break;
      }
0
12.11.2014, 22:46

Не по теме:

Цитата Сообщение от gunslinger Посмотреть сообщение
такой быдло-код:
ИМХО, в рамках данной дискуссии он выглядит просто неприлично:)

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,984
Записей в блоге: 32
12.11.2014, 22:51
Цитата Сообщение от Байт Посмотреть сообщение
Да, любопытный топик получился...
Согласен. Хорошо демонстрирует, что поспешные решения не всегда верные. Мой ответ с глупостью 5332221 я написал и тут же удалил, потому что вспомнил про условие различия цифр числа. А про трехзначность в условии - у меня тоже смутное ощущение, что что-то было.
0
12.11.2014, 23:02

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
написал и тут же удалил
А как это? Научите. Как я понял, на этом форуме автор почти не властен над своим постом. "Что упало - то пропало", "Слово не воробей -...", "рыбка плывет - назад не отдает" - вот его девизы.
Можно правда быстренько войти в "исправления" (около 5 мин. дается на постижение собственного идиотизма). Если больше - можно дополнить и тут же все исправить. Но если уже появился другой пост - все, фигушки, ваш ответ вписан в скрижали.

0
12.11.2014, 23:08

Не по теме:

Байт, ну так и было - мой пост добавился в конец моего же предыдущего поста, склеился с ним. А там и пяти минут не надо было ждать, я сразу подумал - а почему бы мне еще сотню единиц справа не приписать, и тут вспомнил условие неповторения чисел и удалил свой бред. А оказалось, я лохЪ в квадрате, и Dani это убедительно показал :)
ЗЫ кстати, вот это Дано натуральное число N. Найти сумму ряда 1, -1, 2, -3, 5, -8, . состоящего из N элементов не менее интересная тема, сейчас обдумываю, есть некоторые идеи. Очень хочется написать однострочник на Haskell, но модератор уже прямым текстом за это карточку обещал :)

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.11.2014, 23:28

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
Очень хочется написать однострочник на Haskell, но модератор уже прямым текстом за это карточку обещал
Можно попробовать так. Ежели здесь есть раздел для Хаскелов (или им подобных), написать ответ (топик) там (со ссылкой на первоисточник вдохновения), а в соответствующем топике дать перекрестную ссылку. ИМХО, все правила будут соблюдены, и злым модераторам останется только локти кусать:) Ну, и может сослужить службу популяризации вашего любимого языка:)



Добавлено через 12 минут
Цитата Сообщение от _Ivana Посмотреть сообщение
кстати, вот это
ИМХО, там должен быть простой закон, как и все у этого парня из Бонначи (в переводе - бродяга)
0
13.11.2014, 00:30

Не по теме:

Байт, закон нащупал сразу, пытался уложиться в минимум символов и красивую логику. Сейчас напишу ответ в той теме.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2014, 00:30
Помогаю со студенческими работами здесь

Найти наибольшее простое число из промежутка от n до k
1. Найти наибольшее простое число из промежутка от n до k. С++

Найти наибольшее число в последовательности чисел
%-) Добавлено через 1 минуту Вводится последовательность из N произвольных чисел. Найти наибольшее число в последовательности....

Найти число повторяющееся наибольшее количество раз
Есть массив в котором, нужно найти число повторяющееся наибольшее количество раз. Помогите написать программу на с++.

Найти наименьшее и наибольшее число среди введенных
Здравствуйте, я бы хотел попросить помощи в завершении задачи, для того что бы она правильно работала. Вот сама задачка: &quot;Теперь...

Найти наибольшее число из пяти введенных пользователем
Нужно найти наибольшее число из пяти введенных пользователем. Написал так: int v; int w; int x; int y; int z; cout...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru