Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
3 / 2 / 2
Регистрация: 26.10.2015
Сообщений: 265

не получается сложить сложить строки в функии

02.12.2015, 15:54. Показов 1864. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
моя функция если получает параметр 7 тов возвращает 111.
как сделать так что бы она возвращала 0111?????
JavaScript
1
2
3
4
5
6
7
8
9
function numberToBin(number){
var res="";
while(number>0){
    var a=number%2;
    res=a+res;
    number=(number-a)/2;
}
return res;
}
Почему так не работатет?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function numberToBin(number){
var res="";
while(number>0){
    var a=number%2;
    res=a+res;
    number=(number-a)/2;
}
while(res<=3){
res="0"+res;
}
return res;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2015, 15:54
Ответы с готовыми решениями:

Есть n-значное число нужно сложить сложить все его цифры
Как такое реализовать?

Сложить попарно элементы массива, последний сложить с первым
помогите, пожалуйста, попарно сложить элементы массива x, последний элемент сложить с первым и записать результат в массив y

Два одномерных массива поэлементно сложить между собой - третий - сложить каждый элементы - вывести на экран
2 одномерных массива - сложить между собой - третий - сложить каждый элементы - вывести на экран. Помогите написать программу на...

5
433 / 352 / 259
Регистрация: 29.11.2011
Сообщений: 628
02.12.2015, 18:03
Лучший ответ Сообщение было отмечено crower как решение

Решение

crower,
JavaScript
1
2
3
4
5
6
7
8
9
function numberToBin(number, width) {
    var res = '';
    while(number > 0) {
        var a = number % 2;
        res = a + res;
        number = (number - a) / 2;
    }
    return res.length >= width ? res : new Array(width - res.length + 1).join('0') + res;
}
JavaScript
1
numberToBin(7, 4);
Result: 0111

Ну или компакт версия
JavaScript
1
2
3
4
function numberToBin(number, width) {
    var bin = (number >>> 0).toString(2);
    return bin.length >= width ? bin : new Array(width - bin.length + 1).join('0') + bin;
}
JavaScript
1
numberToBin(7, 4);
1
3 / 2 / 2
Регистрация: 26.10.2015
Сообщений: 265
02.12.2015, 21:37  [ТС]
Vadim_Lasso,
и полная версия не совсем понятна
JavaScript
1
return res.length >= width ? res : new Array(width - res.length + 1).join('0') + res;
0
433 / 352 / 259
Регистрация: 29.11.2011
Сообщений: 628
03.12.2015, 01:22
Лучший ответ Сообщение было отмечено crower как решение

Решение

crower, ну, если подробно, то строку:

return res.length >= width ? res : new Array(width - res.length + 1).join('0') + res;

в функции:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
function numberToBin(number, width) {
    var res = '';
    while(number > 0) {
        var a = number % 2;
        res = a + res;
        number = (number - a) / 2;
    }
 
    return res.length >= width ? res : new Array(width - res.length + 1).join('0') + res;
 
}
можно расписать в таком виде:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function numberToBin(number, width) {
    var res = '';
    while(number > 0) {
        var a = number % 2;
        res = a + res;
        number = (number - a) / 2;
    }
    
    
    /* если длина строки с двоичным числом больше или равна длине width (переданной в функцию)
     * (например 111.length = 3, а width = 2) 
     */
    if (res.length >= width) { 
        return res; // (тогда возвратить обычную строку '111' без добавления нулей)
    } else {
        /* иначе, вычислим разницу между width и res.length 
         * (например, если 111.length = 3, а width = 4, то получится 1, т.е. к строке '111' необходимо добавить еще один ноль 
         */
        var number = width - res.length;
        /* создадим массив с пустыми элементами, и количество элементов в нем будет такое, сколько нужно добавить нулей, плюс единица
         * (например number = 1, и + 1, получаем массив с двумя пустыми элементами 
         */
        var array = new Array(number + 1); // такая запись создает массив заданной длины, все значения в котором undefined
        /* с помощью метода join c аргументом '0', соединим в строку все элементы массива 
         * (например, если в массиве два элемента, то будет 'пусто' + '0' + 'пусто' = '0')
         * (если, например три элемента.. 'пусто' + '0' + 'пусто' + '0' + 'пусто' = '00') 
         */
        var str = array.join('0'); 
        /* соединяем полученную строку нулей и двоичную строку, например '0' + '111' = '0111' */
        var result = str + res;
        return result; // ну и возвращаем результат
    }
    
    
}
1
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
03.12.2015, 02:08
JavaScript
1
 return ("000" + res).slice(-4);
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
05.12.2015, 19:41
var val = 7;
console.log(('000' + val.toString(2)).slice(-4));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2015, 19:41
Помогаю со студенческими работами здесь

Не получается сложить элементы
Program x; uses crt; const n=5; m=5; var a:array of integer; i,j,s:integer; begin for i:=1 to n...

В приложенном коде не получается сложить два числа
using System; public class Test { public static void Main() { Console.Clear(); int a =...

Сложить два поля! Мелочь, а справиться не получается!
Есть поля &quot;Цена&quot;, &quot;Количество&quot; и &quot;Сумма&quot; данными в этих полях являються база в которой в форматами поля &quot;денежный&quot;,...

Два HTML кода не получается сложить в один
Всем привет, у меня есть два HTML кода отвечающих за: 1. Наложение индекса на картинку 2. Вспыхивающая подсказка при наведении на...

Сложить 2 строки
Помогите понять, что не так( Желательно надо было использовать lodsb или stosb #include &lt;iostream&gt; using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru