function count_digit($number) {
return strlen($number);
}
for($a=1; $a<=5000; $a++){ //loop
$i=$a;
$i= (string)$i ;
$num=$a;
$number_of_digits = count_digit($num);
if ($number_of_digits == 1){
$total = $a+$i[0];
}
elseif ($number_of_digits == 2){
$total = $a+$i[0]+$i[1];
}
elseif ($number_of_digits == 3){
$total = $a+$i[0]+$i[1]+$i[2];
}
elseif ($number_of_digits == 4){
$total = $a+$i[0]+$i[1]+$i[2]+$i[3];
}
echo $total. '<br>';
}
输出a:1 2 3 4 5 6 7 8 ... 5000
输出总数:2 4 6 8 10 12 14 16 18 11 13 15 17 19 21 23 25 27 29 22 24 26 28 三十 32 34 36 38 40 33 35 37 39 41 43 45 47 49 51 44 46 48 50
如何使否定输出总数:1 3 5 7 9 20 31 42 53
答案 0 :(得分:0)
好的,现在当我理解你的要求时,让我们采取这种方法。
您拥有的所有数字都不是自编号,因此我们将它们带到数组,以及所有数字0-5000以进行比较。
all_numbers
数组中但不在not_self_numbers
数组中的所有数字必须为self numbers
。
<?php
$not_self_numbers = array();
$all_numbers = array();
for($a=1; $a<=5000; $a++){ //loop
$i=$a;
$i= (string)$i ;
$all_numbers[] = $a;
$num=$a;
$number_of_digits = strlen($num);
if ($number_of_digits == 1){
$total = $a+$i[0];
$not_self_numbers[] = $total;
}
elseif ($number_of_digits == 2){
$total = $a+$i[0]+$i[1];
$not_self_numbers[] = $total;
}
elseif ($number_of_digits == 3){
$total = $a+$i[0]+$i[1]+$i[2];
$not_self_numbers[] = $total;
}
elseif ($number_of_digits == 4){
$total = $a+$i[0]+$i[1]+$i[2]+$i[3];
$not_self_numbers[] = $total;
}
}
$self_numbers = array_diff($all_numbers, $not_self_numbers);
foreach($self_numbers as $number) {
echo $number."<br>";
}