Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2017, 18:26
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Привести двухзначное число к цифре
Здравствуйте!
Как можно двухзначное число привести к цифре, т.е. например число 11, это 1+1, т.е. 2, 12=3, 23=5 и т.д. Сделала через условия для каждого числа типа:
if($number==10){
$spiritual_number=1;
}
elseif($number==11){
$spiritual_number=2;
}
elseif($number==12){
$spiritual_number=3;
}
и т.д., получается длинный список, если делать, например, до 99.
Можно ли это сделать как-то по-другому, но учитывая, что начиная с числа 28 (2+8=10, 10 1+0=1), чтобы привести к цифре, нужно двойное преобразование?
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2017, 19:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

array_sum(str_split($number));
Ответить с цитированием
  #3 (permalink)  
Старый 21.08.2017, 17:44
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 28.08.2017, 16:09
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от Sonya Посмотреть сообщение
Как можно двухзначное число привести к цифре, т.е. например число 11, это 1+1, т.е. 2, 12=3, 23=5 и т.д.
А можно пояснить "и т.д.", напр. 29 это 2+9=11 и на этом останавливаемся? Или 2+9=11 - не цифра а опять двузначное число, поэтому продолжаем 1+1=2?
Ответить с цитированием
  #5 (permalink)  
Старый 28.08.2017, 16:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,232

Сообщение от Sonya
Как можно двухзначное число привести к цифре, т.е. например число 11, это 1+1, т.е. 2, 12=3, 23=5 и т.д.
Это называется посчитать сумму цифр числа...
Т.к. "привести число к цифре" это какая-то словесная белиберда.
Ответить с цитированием
  #6 (permalink)  
Старый 28.08.2017, 16:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Сообщение от Sonya
Как можно двухзначное число привести к цифре
вариант для любого числа на js, строка 22 по ссылке
https://javascript.ru/forum/misc/695...tml#post457249
Ответить с цитированием
  #7 (permalink)  
Старый 28.08.2017, 17:00
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,799

<?php
    $number=55;
    while($number>9) 
        $number=array_sum(str_split($number));
        
    echo $number;
    exit;


Ну или так (с условиями):
<?php
//© Sutaram.  +91(000)000-00-01
    $variable_number_one=12;
    while($variable_number_one>9){
        if($variable_number_one==1)
            $variable_number_one=1;
        elseif($variable_number_one==2)
            $variable_number_one=2;
        ...
        elseif($variable_number_one==11)
            $variable_number_one=2;
        ...
        elseif($variable_number_one==56)
            $variable_number_one=11;
        ...
        elseif($variable_number_one==N)
            ...
    };
echo $variable_number_one;
exit;

Последний раз редактировалось Nexus, 28.08.2017 в 17:11.
Ответить с цитированием
  #8 (permalink)  
Старый 28.08.2017, 17:06
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от рони Посмотреть сообщение
вариант для любого числа на js, строка 22 по ссылке
https://javascript.ru/forum/misc/695...tml#post457249
А можно полюбопытствовать, смысл строчки 21?
var res = [].reduce.call(input, sum, 0);
Ответить с цитированием
  #9 (permalink)  
Старый 28.08.2017, 17:14
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Или можно без циклов:
if( $number>0 )
  $number = (($number-1)%9)+1;


Сообщение от Nexus Посмотреть сообщение
<?php
    $number=55;
    while($number>9) 
        $number=array_sum(str_split($number));
        
    echo $number;
    exit;


Ну или так (с условиями):
<?php
//© Sutaram.  +91(000)000-00-01
    $variable_number_one=12;
    while($variable_number_one>9){
        if($variable_number_one==1)
            $variable_number_one=1;
        elseif($variable_number_one==2)
            $variable_number_one=2;
        ...
        elseif($variable_number_one==11)
            $variable_number_one=2;
        ...
        elseif($variable_number_one==56)
            $variable_number_one=11;
        ...
        elseif($variable_number_one==N)
            ...
    };
echo $variable_number_one;
exit;
Ответить с цитированием
  #10 (permalink)  
Старый 28.08.2017, 17:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Сообщение от rgl
смысл строчки 21?
сумма значений всех инпутов
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
backbone-validate не срабатывает zlodiak Backbone.js 3 30.05.2016 03:14
Рандомное число от 13-69 jack3dm Общие вопросы Javascript 2 27.09.2015 09:48
число в базу Miheeva Общие вопросы Javascript 22 19.02.2015 00:10
округлить число Гробовщик Библиотеки/Тулкиты/Фреймворки 5 18.09.2013 17:45
Как найти наибольшее число и ввести его на экран? Ivan152 Оффтопик 2 20.05.2012 20:13