2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение13.07.2018, 16:53 


28/07/17

317
eugensk в сообщении #1326397 писал(а):
А что с кодом не так? Он работает и возвращает правильный результат.

Как работает?
Код:
    for (i = 1; i <= Y; i++)
    {
        s = i;
        M = i;

        for (j = 1; j <= i-1; j++)
        {
            s = SumDigits(s);
            M += s;

При i = 1 условие во втором цикле не выполняется, и соответственно вход в него не происходит. То есть, реально начинает считать с i = 2, не знаю, так ли было задумано автором кода.

При каждом введённом Y программа выдаёт единственный результат да-нет: либо выполнилось условие if (M == Y), либо нет. Оно выполняется только один раз, дальше можно не считать, выходить из обеих циклов. Что-бы получить линейку результатов, нужен либо ещё один цикл, либо вручную вводить Y, например, от 1 до 100 - и вручную записывать результат на бумажке. А так да, вроде работает, но я бы не понял, что оно работает, если бы г-н Dmitriy40 не выложил таблицу с готовыми результатами.

Не понятен смысл вывода на экран переменной i.

 Профиль  
                  
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение13.07.2018, 18:37 
Аватара пользователя


14/12/17
1526
деревня Инет-Кельмында
FomaNeverov в сообщении #1326529 писал(а):
При каждом введённом Y программа выдаёт единственный результат да-нет: либо выполнилось условие if (M == Y), либо нет

Нет, просто прогоните её без своих изменений, и укажите 9999, например.

 Профиль  
                  
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение13.07.2018, 23:50 


28/07/17

317
Вы правы, на больших числах я не поверял. Входное число 9999 даёт три совпадения: при i равно 999, 1428, 2496. Я по прежнему не понимаю смысла (зачем выводить её на экран) переменной i. Т.к. уже при первом совпадении ясно, что число 9999 попадает в результат - зачем считать дальше?

Мои изменения касаются только ввода/вывода, т.к. моё приложение оконное, и scanf/printf в нём не работают. Сам алгоритм я не трогал.

 Профиль  
                  
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение14.07.2018, 00:41 
Заслуженный участник


20/08/14
11867
Россия, Москва
FomaNeverov в сообщении #1326594 писал(а):
Я по прежнему не понимаю смысла (зачем выводить её на экран) переменной i.
Ну потому что просили решить уравнение, а не найти один любой корень (пусть даже минимальный). Решить обычно подразумевает найти все корни (все $n$), а не один.

 Профиль  
                  
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение14.07.2018, 07:07 


28/07/17

317
Dmitriy40 в сообщении #1326616 писал(а):
Решить обычно подразумевает найти все корни (все $n$), а не один.

А в таблице вы что выложили? Там нет всех корней.

 Профиль  
                  
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение14.07.2018, 14:55 
Заслуженный участник


20/08/14
11867
Россия, Москва
FomaNeverov
Так я и не говорил что выкладываю решения, я выложил какие $Y$ имеют решения. Причём лишь для проверки своих программ.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group