2014 dxdy logo

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

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




На страницу Пред.  1, 2
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение13.07.2018, 16:53 
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 
Аватара пользователя
FomaNeverov в сообщении #1326529 писал(а):
При каждом введённом Y программа выдаёт единственный результат да-нет: либо выполнилось условие if (M == Y), либо нет

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

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

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

 
 
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение14.07.2018, 00:41 
FomaNeverov в сообщении #1326594 писал(а):
Я по прежнему не понимаю смысла (зачем выводить её на экран) переменной i.
Ну потому что просили решить уравнение, а не найти один любой корень (пусть даже минимальный). Решить обычно подразумевает найти все корни (все $n$), а не один.

 
 
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение14.07.2018, 07:07 
Dmitriy40 в сообщении #1326616 писал(а):
Решить обычно подразумевает найти все корни (все $n$), а не один.

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

 
 
 
 Re: Программа на C, решающая уравнение в натуральных числах
Сообщение14.07.2018, 14:55 
FomaNeverov
Так я и не говорил что выкладываю решения, я выложил какие $Y$ имеют решения. Причём лишь для проверки своих программ.

 
 
 [ Сообщений: 21 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group