\$\begingroup\$
\$\endgroup\$
3
I'm trying to find the shortest and best way to achieve the following:
Given input integer $N, get the following output:
- n = 0, output = 0
- n = 1, output = 0
- n = 2, output = 10
- n = 3, output = 100
- n = 4, output = 1000
- n = 5, output = 10000
I do this with the following code, but there must be a better option to do this.
<?php
$n = 1;
function getNumber($n) {
if ($n === 0 OR $n === 1) {
return "0";
} else {
return "1".str_repeat("0", $n -1);
}
}
echo getNumber($n);
?>
200_success
146k22 gold badges190 silver badges479 bronze badges
asked Mar 25, 2016 at 14:54
-
3\$\begingroup\$ Just an overall comment, but calling a function 'getNumber' when it returns a string may not be the best solution to your problem \$\endgroup\$A. Romeu– A. Romeu2016年03月25日 15:09:40 +00:00Commented Mar 25, 2016 at 15:09
-
3\$\begingroup\$ What you may and may not do after receiving answers. I've rolled back Rev 2 → 1. \$\endgroup\$200_success– 200_success2016年03月25日 15:18:21 +00:00Commented Mar 25, 2016 at 15:18
-
\$\begingroup\$ Allright, won't do it again! Tnx :-) \$\endgroup\$Chilion– Chilion2016年03月25日 15:19:01 +00:00Commented Mar 25, 2016 at 15:19
2 Answers 2
\$\begingroup\$
\$\endgroup\$
Maybe you want something short like is
echo ($n <= 1) ? 0 : pow(10, $n - 1);
answered Mar 25, 2016 at 15:14
\$\begingroup\$
\$\endgroup\$
0
The pow
function is probably what you are looking for.
return pow(10, $n-1);
should be close to what you want but might need tweeking for borderline cases.
answered Mar 25, 2016 at 15:06
lang-php