Alexandroppolus,
предположим сумма равна 9 тогда for (var i = 1; i <= 4; ++i) { count += 10 + i; /* тут подразумевается такое: var N = 9 - i; // оставшаяся сумма без первой цифры var start = N - 9; // минимальное значение второй цифры var end = 9; // максимальное значение второй цифры var delta = end - start + 1; // сколько всего допустимых значений второй цифры count += delta; // delta = 9 - (9 - i - 9) + 1 = 10 + i */ } alert(count);// 50 где ошибка? 108,117,126,135,144,153,162,171,180,207,216,225,23 4,243,252,261,270,306,315,324,333,342,351,360,405, 414,423,432,441,450 => 30 |
рони,
почти то же самое var N = 9; var count = 0; for (var i = 1; i <= Math.min(4, N); ++i) { count += Math.min(N - i, 9) - Math.max(N - i - 9, 0) + 1; } alert(count); |
Alexandroppolus,
спасибо что ответили, но для меня ваши ответы, как фокусы достать зайца из цилиндра, у вас есть заяц в рукаве, у меня нет, так что я по старинке перебором, просто запомню, может когда нибудь осилю. |
Часовой пояс GMT +3, время: 08:45. |