Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: JavaScript: Подсчитать количество цифр числа и др. задачи
СообщениеДобавлено: 15 апр 2013, 18:10 
Не в сети
Начинающий
Зарегистрирован:
10 апр 2013, 23:24
Сообщений: 4
Cпасибо сказано: 4
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Помогите решить задачи из лабораторной работы по JavaScript. Для меня проблема в том, что по условию нельзя переводить числа в строку и использовать готовые методы для работы со строками.

Для натурально числа n:

2) подсчитать количество цифр в n;
3) получить массив цифр n;
4) составить максимальное число из цифр n;
5) составить минимальное число из цифр n;
6) проверить, есть ли в записи n (n<10000) три одинаковые цифры.

Хоть что-нибудь, пожалуйста.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: JavaScript: Подсчитать количество цифр числа и др. задачи
СообщениеДобавлено: 15 апр 2013, 21:46 
Не в сети
Администратор
Аватара пользователя
Зарегистрирован:
23 фев 2010, 22:52
Сообщений: 6003
Cпасибо сказано: 3247
Спасибо получено:
3150 раз в 2273 сообщениях
Очков репутации: 652

Добавить очки репутацииУменьшить очки репутации
Daunitta писал(а):
2) подсчитать количество цифр в n;
3) получить массив цифр n;

В задаче 2) нужно делить n на 10 пока остаток не будет больше или равен 1 и увеличивать счётчик после каждой итерации на 1.
Задача 3) слегка посложней, попытайтесь самостоятельно понять решение

<script type="text/javascript">
function LengthOfNum(n) //Функция возвращает количество цифр
{ // в записи натурального числа n
var count=0;

do {n /= 10; count++} while (n >= 1); // n/=10 - это тоже, что и n=n/10

return count;
}

function DigitsOfNum(n) //Функция возвращает массив цифр, из
{ // которых состоит натуральное число n
var A = [], k = 0;

while (n >= 1){ A[k++] = (n-n%1)%10; n /= 10; }

for (var i = 0; i < k/2; i++) // Инвертирование массива (не обязательно)
{ var t = A[i]; A[i] = A[k-1-i]; A[k-1-i] = t; }

return A;
}
</script>

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: JavaScript: Подсчитать количество цифр числа и др. задачи
СообщениеДобавлено: 15 апр 2013, 22:43 
Не в сети
Администратор
Аватара пользователя
Зарегистрирован:
23 фев 2010, 22:52
Сообщений: 6003
Cпасибо сказано: 3247
Спасибо получено:
3150 раз в 2273 сообщениях
Очков репутации: 652

Добавить очки репутацииУменьшить очки репутации
Daunitta писал(а):
4) составить максимальное число из цифр n;

Если нужно "чисто математически", то, например, так

<script type="text/javascript">
function MaxNumFromDigits(n)
{
var A=[], max=0;

function Len(N) //Функция возвращает 'длину' натурального числа N,
{ var count=0; // (количество цифр в его записи)
do {N/=10; count++} while (N>=1);
return count;
}

for (var i=0; i<Len(n); i++) //Заносим в массив A цифры числа n.
{ A[i] = Math.floor( n/Math.pow(10,Len(n)-1-i) )%10 ; }

for (var i=0; i<A.length-1; i++ ) //Сортируем элементы А (цифры n) по убыванию.
{ for (var j=i+1; j<A.length; j++) //Используется алгоритм сортировки пузырьком
{ if (A[j] > A[i]) // http://ru.wikipedia.org/wiki/Сортировка_пузырьком
{ var tmp=A[j]; A[j]=A[i]; A[i]=tmp; }
}
}

for (var i=0; i<Len(n); i++) //Преобразуем элементы A в искомое число.
{ max += A[i]*Math.pow(10,Len(n)-1-i); }

return max;
}
</script>


Daunitta писал(а):
5) составить минимальное число из цифр n;

Аналогично предыдущей задаче. Только есть маленькая тонкость с цифрой 0.

<script type="text/javascript">
function MinNumFromDigits(n)
{
var A=[], min=0;

function Len(N) //Функция возвращает 'длину' натурального числа N,
{ var count=0; // (количество цифр в его записи)
do {N/=10; count++} while (N>=1);
return count;
}

for (var i=0; i<Len(n); i++) //Заносим в массив A цифры числа n.
{ A[i] = Math.floor( n/Math.pow(10,Len(n)-1-i) )%10 ; }

for (var i=0; i<A.length-1; i++ ) //Сортируем элементы А (цифры n) по возрастанию.
{ for (var j=i+1; j<A.length; j++) //Используется алгоритм сортировки пузырьком
{ if (A[j] < A[i]) // http://ru.wikipedia.org/wiki/Сортировка_пузырьком
{ var tmp=A[j]; A[j]=A[i]; A[i]=tmp; }
}
}

for (var i=1; i<A.length; i++) //Вопрос на засыпку: :)
{ if (A[0]==0) { A[0]=A[i]; A[i]=0; } } // для чего нужен этот цикл?

for (var i=0; i<A.length; i++) //Преобразуем элементы A в искомое число.
{ min += A[i]*Math.pow(10,A.length-1-i); }

return min;
}
</script>

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: JavaScript: Подсчитать количество цифр числа и др. задачи
СообщениеДобавлено: 16 апр 2013, 00:42 
Не в сети
Администратор
Аватара пользователя
Зарегистрирован:
23 фев 2010, 22:52
Сообщений: 6003
Cпасибо сказано: 3247
Спасибо получено:
3150 раз в 2273 сообщениях
Очков репутации: 652

Добавить очки репутацииУменьшить очки репутации
Daunitta писал(а):
6) проверить, есть ли в записи n (n<10000) три одинаковые цифры.

Например так

<script type="text/javascript">
function testNum(n)
{
if (n>9999) return 'Проверяемое число должно быть < 10000.';

function Len(N) //Функция возвращает 'длину' натурального числа N,
{ var count=0; // (количество цифр в его записи)
do {N/=10; count++} while (N>=1);
return count;
}

var A=[];

for (var i=0; i<Len(n); i++) //Записываем в массив A цифры числа n
{ A[i] = Math.floor( n/Math.pow(10,Len(n)-1-i) )%10 ; }

var a=A[0], b=A[1], c=A[2];

if (Len(n)==3 && a==b && a==c) return true;

if (Len(n)==4)
{ var d=A[3];
if (a==b && a==c || a==b && a==d || a==c && a==d || b==c && b==d) return true;
}

return false;
}
</script>

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 4 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Подсчитать количество различных перестановок цифр

в форуме Комбинаторика и Теория вероятностей

fheeda

7

2368

20 апр 2015, 19:27

Подсчитать сумму цифр числа А

в форуме Алгебра

dikarka2004

2

288

13 ноя 2021, 10:23

Подсчитать количество конфигураций 4-х пар

в форуме Дискретная математика, Теория множеств и Логика

vanchester

20

1393

02 мар 2015, 20:55

Как подсчитать количество возможных произведений

в форуме Алгебра

Zitin

4

152

26 сен 2021, 18:19

Подсчитать количество сочетаний без повторений

в форуме Комбинаторика и Теория вероятностей

zonta

1

433

20 фев 2017, 13:42

Как подсчитать количество возможных вариантов?

в форуме Дискретная математика, Теория множеств и Логика

TTTYYY

5

211

22 дек 2019, 12:48

Количество трехзначных, с суммой цифр n

в форуме Теория чисел

LookFromBehind

2

477

11 мар 2018, 23:25

Количество чисел, получаемых перестановкой цифр

в форуме Дискретная математика, Теория множеств и Логика

Diksaz

1

246

12 ноя 2018, 17:32

Сумма цифр числа

в форуме Алгебра

Do_you_watch_co

10

396

28 июн 2019, 12:54

Сумма цифр числа

в форуме Теория чисел

Rollick

15

582

16 ноя 2020, 16:24


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved