Вход

Просмотр полной версии : Привести двухзначное число к цифре


Sonya
20.08.2017, 18:26
Здравствуйте!
Как можно двухзначное число привести к цифре, т.е. например число 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), чтобы привести к цифре, нужно двойное преобразование?

laimas
20.08.2017, 19:27
array_sum(str_split($number));

Sonya
21.08.2017, 17:44
Спасибо.

rgl
28.08.2017, 16:09
Как можно двухзначное число привести к цифре, т.е. например число 11, это 1+1, т.е. 2, 12=3, 23=5 и т.д.
А можно пояснить "и т.д.", напр. 29 это 2+9=11 и на этом останавливаемся? Или 2+9=11 - не цифра а опять двузначное число, поэтому продолжаем 1+1=2?

ksa
28.08.2017, 16:12
Как можно двухзначное число привести к цифре, т.е. например число 11, это 1+1, т.е. 2, 12=3, 23=5 и т.д.
Это называется посчитать сумму цифр числа... ;)
Т.к. "привести число к цифре" это какая-то словесная белиберда. :)

рони
28.08.2017, 16:42
Как можно двухзначное число привести к цифре
вариант для любого числа на js, строка 22 по ссылке
https://javascript.ru/forum/misc/69548-slozhenie-chisel-proshu-pomoshhi.html#post457249

Nexus
28.08.2017, 17:00
<?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;

rgl
28.08.2017, 17:06
вариант для любого числа на js, строка 22 по ссылке
https://javascript.ru/forum/misc/69548-slozhenie-chisel-proshu-pomoshhi.html#post457249
А можно полюбопытствовать, смысл строчки 21?
var res = [].reduce.call(input, sum, 0);

rgl
28.08.2017, 17:14
Или можно без циклов:

if( $number>0 )
$number = (($number-1)%9)+1;

<?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;

рони
28.08.2017, 17:25
смысл строчки 21?
сумма значений всех инпутов

Nexus
28.08.2017, 17:25
можно без циклов
No bad... до этого сами дошли или где прочитали?

rgl
28.08.2017, 17:36
сумма значений всех инпутовДа, извиняюсь за глупый вопрос, позабывал все, что такое call :(
Nexux
Сам, но не сейчас, поэтому и вопрос такой задал, с умыслом :)