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

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

02.12.2015, 15:54. Показов 1850. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru