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

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

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

C++ заменить одну цифру так чтобы получилось максимальное число фибаначи
C++ Дано натуральное трехзначное число n. Переставить его цифры так, чтобы образовалось максимальное число, записанное теми же цифрами.
Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке C++
Дано натуральное число N (N <= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на 2N C++
Дано четырехзначное натуральное число А. Требуется определить что больше: число А или произведение его цифр? C++
C++ Дано натуральное число n. Вычислить сумму его цифр
C++ Заменить любую цифру числа так, чтобы полученное число делилось на наибольшее количество своих цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
14339 / 9170 / 1321
Регистрация: 24.12.2010
Сообщений: 16,779
25.11.2011, 12:47     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #2
Цитата Сообщение от gobL1n Посмотреть сообщение
Дано натуральное число N. Если это сложно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.
Кто чего понял? Я - нет.
gobL1n
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 9
25.11.2011, 12:57  [ТС]     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #3
Если это возможно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 13:02     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #4
Байт, совершенное число это когда оно совпадает с суммой своих делителей, не равных этому числу. Требуется путем замены не более одной цифры числа получить совершенное число и из всех таких возможных замен найти максимальное совершенное число.
Байт
 Аватар для Байт
14339 / 9170 / 1321
Регистрация: 24.12.2010
Сообщений: 16,779
25.11.2011, 13:07     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #5
Цитата Сообщение от Thinker Посмотреть сообщение
Байт, совершенное число это когда оно совпадает с суммой своих делителей, не равных этому числу. Требуется путем замены не более одной цифры числа получить совершенное число и из всех таких возможных замен найти максимальное совершенное число.
из поста #3 я это кажется начал понимать. Что такое совершенное число, я догадываюсь. А вот из поста #1 я ничего понять не смог. Ладно, попробуем.
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 13:10     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #6
Цитата Сообщение от Байт Посмотреть сообщение
из поста #3 я это кажется начал понимать. А вот из поста #1 я ничего понять не смог.

Не по теме:

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

Байт
 Аватар для Байт
14339 / 9170 / 1321
Регистрация: 24.12.2010
Сообщений: 16,779
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);
}
Вот как-то так.
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 13:32     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #8
Байт, рассматриваются собственные делители, поэтому
C++
1
for(i=1, s=0; i <= (n >> 1); i++)
BRcr
 Аватар для BRcr
4004 / 2293 / 155
Регистрация: 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;
Байт
 Аватар для Байт
14339 / 9170 / 1321
Регистрация: 24.12.2010
Сообщений: 16,779
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] не точка, а запятая
gobL1n
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 9
09.12.2011, 13:26  [ТС]     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #11
А можно её как нибудь проще написать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 13:30     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число.
Еще ссылки по теме:

C++ Дано двузначное натуральное число. Получить другое натуральное число, в котором порядок цифр изменен на противоположный
C++ Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
Дано трехзначное натуральное число. Найти произведение его цифр C++
C++ Дано натуральное число. Определить сумму m его последних цифр. Если заданное число – менее чем m-значное, то
Дано натуральное число. Если число цифр в числе нечетно, то удалить его серединную цифру C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.12.2011, 13:30     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. #12
Цитата Сообщение от gobL1n Посмотреть сообщение
А можно её как нибудь проще написать?
Самый понятный код - код, написанный своими руками, код, рожденный в своей голове
Yandex
Объявления
09.12.2011, 13:30     Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число.
Ответ Создать тему
Опции темы

Текущее время: 12:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru