Я использовал метод А, подсчитывает количество возможных вариантов для получения как номер 10 с номерами, которые от 0 до 6. Проблема заключается в том, что он просто занимает слишком много времени, когдаx как 50 или что-то в этом роде. Мне просто нужны советы, что я должен сделать, чтобы сделать это быстрее.Java Оператор IF (повышение эффективности алгоритма)
Код
public static int count(int x) {
if (x < 0) {
return 0;
}
if (x == 0) {
return 1;
}
int result = 0;
for (int i = 1; i <= 6; i++) {
result += count(x - i);
}
return result;
}
Обычно, если ваша программа работает без ошибок, но вы хотите, чтобы она работала * лучше *, ваш вопрос более подходит для обмена [code review] (http://codereview.stackexchange.com/), чем здесь. – azurefrog
Вы пытались найти формулу закрытой формы вместо использования рекурсии? т. е. вы пытались выразить count (n) как функцию n вместо функции count (n-1), ..., count (n-6)? Это математическая проблема. – assylias
Я не понимаю, что он должен делать. – CaffeineToCode