Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
gobL1n
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 9
1

Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число.

25.11.2011, 11:31. Просмотров 1251. Ответов 11
Метки нет (Все метки)

Дано натуральное число N. Если это сложно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2011, 11:31
Ответы с готовыми решениями:

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

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять:) ...

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

Заменить любую цифру числа так, чтобы полученное число делилось на наибольшее количество своих цифр
Дано натуральное число. Заменить любую его цифру так, чтобы полученное число делилось на наибольшее...

Дано натуральное число. Если число цифр в числе нечетно, то удалить его серединную цифру
Дано натуральное число. Если число цифр в числе нечетно, то удалить его серединную цифру. ...

11
Байт
Эксперт C
21266 / 13437 / 2835
Регистрация: 24.12.2010
Сообщений: 28,454
25.11.2011, 12:47 2
Цитата Сообщение от gobL1n Посмотреть сообщение
Дано натуральное число N. Если это сложно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.
Кто чего понял? Я - нет.
0
gobL1n
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 9
25.11.2011, 12:57  [ТС] 3
Если это возможно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.
0
Thinker
Эксперт С++
4239 / 2213 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 13:02 4
Байт, совершенное число это когда оно совпадает с суммой своих делителей, не равных этому числу. Требуется путем замены не более одной цифры числа получить совершенное число и из всех таких возможных замен найти максимальное совершенное число.
1
25.11.2011, 13:02
Байт
Эксперт C
21266 / 13437 / 2835
Регистрация: 24.12.2010
Сообщений: 28,454
25.11.2011, 13:07 5
Цитата Сообщение от Thinker Посмотреть сообщение
Байт, совершенное число это когда оно совпадает с суммой своих делителей, не равных этому числу. Требуется путем замены не более одной цифры числа получить совершенное число и из всех таких возможных замен найти максимальное совершенное число.
из поста #3 я это кажется начал понимать. Что такое совершенное число, я догадываюсь. А вот из поста #1 я ничего понять не смог. Ладно, попробуем.
0
Thinker
Эксперт С++
4239 / 2213 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 13:10 6
Цитата Сообщение от Байт Посмотреть сообщение
из поста #3 я это кажется начал понимать. А вот из поста #1 я ничего понять не смог.

Не по теме:

Там же одно и то же:) Понял, что вы пошутили

0
Байт
Эксперт C
21266 / 13437 / 2835
Регистрация: 24.12.2010
Сообщений: 28,454
25.11.2011, 13:22 7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int Sov(int n) 
{ int i, s;
for(i=1, s=0; i<=n; i++) if ((n%i)==0) s+=i;
if (s==n) return 1;
else return 0;
}
main()
{ int n, M; char s[20]. t[20];
M = -1;
strcpy(s, _argv[1]);
for(i=0; i<strlen(s); i++) {
 strcpy(t, s);
 for(j=0; j<10; j++) {
   t[i] = '0'+j;
   if (t[i] == s[i]) continue;
   n = atoi(t);
   if (Sov(n) && n> M) M = n;
 }
}
if (M > 0) printf("M=%d\n", M);
}
Вот как-то так.
2
Thinker
Эксперт С++
4239 / 2213 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 13:32 8
Байт, рассматриваются собственные делители, поэтому
C++
1
for(i=1, s=0; i <= (n >> 1); i++)
1
BRcr
4025 / 2314 / 292
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
25.11.2011, 13:41 9
Байт, а можете слегка прокомментировать вот эти строчки, что-то не могу никак врубиться
C++
1
2
3
4
5
6
strcpy(s, _argv[1]);
for(i=0; i<strlen(s); i++) {
 strcpy(t, s);
 for(j=0; j<10; j++) {
   t[i] = '0'+j;
   if (t[i] == s[i]) continue;
0
Байт
Эксперт C
21266 / 13437 / 2835
Регистрация: 24.12.2010
Сообщений: 28,454
25.11.2011, 14:16 10
C++
1
2
3
4
5
6
7
// Считаю что число дается аргументом вызова программы "proga.exe 1234"
strcpy(s, _argv[1]);  // Копирую анализируемое число.
for(i=0; i<strlen(s); i++) {  // Перебираю все цифровые позиции числа
 strcpy(t, s);  // Просто копирую исходное число во временную строку
 for(j=0; j<10; j++) {  // Цикл по кол-ву цифр
   t[i] = '0'+j;  // Заменяю i-тую цифру
   if (t[i] == s[i]) continue; // Если цифра равна исходной, ничего не делаю. Так я понял условие
Добавлено через 1 минуту
Цитата Сообщение от Thinker Посмотреть сообщение
Байт, рассматриваются собственные делители, поэтому
C++
1
for(i=1, s=0; i <= (n >> 1); i++)
Вы совершенно правы!
И еще одна описочка - после s[20] не точка, а запятая
1
gobL1n
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 9
09.12.2011, 13:26  [ТС] 11
А можно её как нибудь проще написать?
0
Thinker
Эксперт С++
4239 / 2213 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.12.2011, 13:30 12
Цитата Сообщение от gobL1n Посмотреть сообщение
А можно её как нибудь проще написать?
Самый понятный код - код, написанный своими руками, код, рожденный в своей голове
1
09.12.2011, 13:30
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 13:30

Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр?
Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение...

Дано натуральное число. Определить сумму m его последних цифр. Если заданное число – менее чем m-значное, то
Дано натуральное число. Определить сумму m его последних цифр. Если заданное число – менее чем...

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке
1) Заменить данное натуральное число на число, которое получается из исходного записью его цифр в...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.