19.04.2013, 17:45
|
Новичок на форуме
|
|
Регистрация: 17.04.2013
Сообщений: 2
|
|
задача нахождения нат.чисел, запись которых есть одна из строгих последовательностей
Здравствуйте. У меня есть такая задача:
Найти все натуральные числа, не превосходящие заданного n, десятичная запись которых есть строго возрастающая или строго убывающая последовательность цифр.
У меня есть код, который считывает число и записывает цифры числа в массив:
var b = +prompt('введите число:');
var massiv = [];
for (var temp = b; Math.round(temp) != 0; temp /= 10, temp = Math.floor(temp)) {
massiv.unshift(temp % 10);
}
Помогите пожалуйста дописать программу. Или подскажите как организовать нахождение этих чисел.
Спасибо!
|
|
19.04.2013, 18:28
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Вообще не поятно чо вам надо: в коде одно, в задаче другое, подразумевали вы наверняка третье...
Например чтобы проверить введённое число, достаточно сделать так:
var digits = '0123456789 9876543210',
num = +prompt('введите число:');;
if( ~digits.indexOf(num) ) alert('Норм: ' + num);
else alert('Печаль: ' + num);
__________________
29375, 35
|
|
19.04.2013, 19:10
|
Профессор
|
|
Регистрация: 14.12.2009
Сообщений: 155
|
|
Aetae,
Я так думаю, что следующий пример описывает постановку проблемы:
Цитата:
|
Дано: 50
Найти:
а) "восходящие" - 12, 23, 34, 45
б) "нисходящие" - 10, 21, 32, 43
|
И так для любого другого заданного числа.
Последний раз редактировалось with-love-from-siberia, 19.04.2013 в 19:23.
|
|
19.04.2013, 19:14
|
|
Профессор
|
|
Регистрация: 28.02.2011
Сообщений: 349
|
|
with-love-from-siberia,
А я думаю по-другому. Строго возрастающая последовательность - это не последовательность, в которой каждая следующая цифра на 1 больше предыдущей, а последовательность, где каждая следующая цифра строго больше предыдущей (т.е. не "больше или равно" а "строго больше")
Пусть автор для начала уточнит условие.
Решать можно простым перебором, это годится для небольших чисел, но если граничное число большое и требуется эффективность, то можно применить более хитрый алгоритм, но тогда решение будет нетривиальным.
Последний раз редактировалось rgl, 19.04.2013 в 19:17.
|
|
19.04.2013, 19:27
|
Профессор
|
|
Регистрация: 14.12.2009
Сообщений: 155
|
|
rgl,
Согласен. Уточнение требуется.
Сообщение от Mirach
|
Найти все натуральные числа, не превосходящие заданного n, десятичная запись которых есть строго возрастающая или строго убывающая последовательность цифр.
|
Сообщение от rgl
|
Строго возрастающая последовательность
|
Скорее всего Вы правы. Тогда решение должно быть:
Цитата:
|
Дано: 50
Найти:
а) "восходящие" - 12, 34
б) "нисходящие" - 10, 32
|
|
|
19.04.2013, 22:47
|
|
Профессор
|
|
Регистрация: 28.02.2011
Сообщений: 349
|
|
with-love-from-siberia,
Я имел ввиду другое, дано 50, восходящие 0-9, 12-19, 23-29, 34-39, 45-49, нисходящие 0-9, 10, 20, 21, 30-32, 40-43, 50
|
|
19.04.2013, 23:22
|
Профессор
|
|
Регистрация: 14.12.2009
Сообщений: 155
|
|
rgl, да... Без четкого определения не обойтись.
|
|
19.04.2013, 23:36
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Сообщение от with-love-from-siberia
|
rgl, да... Без четкого определения не обойтись.
|
О чём я самого начала и сказал.)
А в пример привёл самое простое что пришло на ум в данных условиях.)
__________________
29375, 35
|
|
21.04.2013, 17:01
|
|
Профессор
|
|
Регистрация: 22.06.2012
Сообщений: 168
|
|
Сообщение от Mirach
|
Здравствуйте. У меня есть такая задача:
Найти все натуральные числа, не превосходящие заданного n, десятичная запись которых есть строго возрастающая или строго убывающая последовательность цифр.
|
Вот для возрастающих
<script type="text/javascript">
function Sequence(n)
{
if (n<12) return 'Искомых чисел нет.';
var i, k, a, b, t, A=[];
for (i=12; i<=n; i++)
{ t = true;
k = i;
a = k%10;
k = Math.floor(k/10);
while (k>0 && t)
{ b = k%10;
if (b>=a) t = false;
else { a = b; k = Math.floor(k/10); }
}
if (t) A[A.length]=i;
}
return A;
}
</script>
<button onclick="alert( Sequence(50) )">Найти числа для n=50</button>
Сообщение от rgl
|
восходящие 0-9
|
Разве цифры этих чисел образуют строго возрастающие или строго убывающие последовательности?
|
|
22.04.2013, 11:59
|
|
Профессор
|
|
Регистрация: 28.02.2011
Сообщений: 349
|
|
Сообщение от rgl
|
восходящие 0-9
|
Сообщение от Demath
|
Разве цифры этих чисел образуют строго возрастающие или строго убывающие последовательности?
|
Математик скажет "да", философ - "нет".
Аналогично оба ответят на вопрос: пустое множество - это множество?
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
глюк форума |
Gvozd |
Сайт Javascript.ru |
11 |
18.03.2009 14:37 |
|
|
|