Сообщение Re: Помогите Васе от 25.06.2015 18:54
Изменено 25.06.2015 19:13 watchmaker
Здравствуйте, olimp_20, Вы писали:
Странный оператор continue. Если он реализуется хоть раз, то никакие переменные не изменят свои значения, а цикл будет вечным.
Слишком большая верхняя граница перебора. И нет нужды рассматривать перестановки слагаемых. Куда лучше будет, если по-прежнему сохранить требование j³ ≤ n, но при этом потребовать чтобы одновременно j не превосходило предыдущего взятого значения (a[i-1], если оно определено, конечно).
_> while(j>0){
_> int x = j*j*j;
_> if(n - x < 0) continue;
Странный оператор continue. Если он реализуется хоть раз, то никакие переменные не изменят свои значения, а цикл будет вечным.
_> int j=pow(n*1.0, 1.0/3.0);//начать поиск с чила, куб которого меньше либо равно n
Слишком большая верхняя граница перебора. И нет нужды рассматривать перестановки слагаемых. Куда лучше будет, если по-прежнему сохранить требование j³ ≤ n, но при этом потребовать чтобы одновременно j не превосходило предыдущего взятого значения (a[i-1], если оно определено, конечно).
Здравствуйте, olimp_20, Вы писали:
Странный оператор continue. Если он реализуется хоть раз, то никакие переменные не изменят свои значения, а цикл будет вечным.
Слишком большая верхняя граница перебора. И нет нужды рассматривать перестановки слагаемых. Куда лучше будет, если по-прежнему сохранить требование j³ ≤ n, но при этом потребовать чтобы одновременно j не превосходило предыдущего взятого значения (a[i-1], если оно определено, конечно).
Нижняя граница слишком низка — незачем перебирать все малые x, если их суммы заведомо не хватит для достижения n.
_> while(j>0){
_> int x = j*j*j;
_> if(n - x < 0) continue;
Странный оператор continue. Если он реализуется хоть раз, то никакие переменные не изменят свои значения, а цикл будет вечным.
_> int j=pow(n*1.0, 1.0/3.0);//начать поиск с чила, куб которого меньше либо равно n
Слишком большая верхняя граница перебора. И нет нужды рассматривать перестановки слагаемых. Куда лучше будет, если по-прежнему сохранить требование j³ ≤ n, но при этом потребовать чтобы одновременно j не превосходило предыдущего взятого значения (a[i-1], если оно определено, конечно).
_> while(j>0){
Нижняя граница слишком низка — незачем перебирать все малые x, если их суммы заведомо не хватит для достижения n.