我發現了一個問題對谷歌這樣的:如何使用PHP創建三角形卷展欄?
當給定了輸入:4,7,3,6,7
輸出這樣的:
81
40 41
21 19 22
11 10 9 13
4 7 3 6 7
我只能嘗試像這將:
for($i = 1; $i<=5;$i++){
for($j=0; $j<$i; $j++){
echo "4";
}
echo "<br/>";
}
下一個我很困惑
任何解決方案來解決我的問題?
我發現了一個問題對谷歌這樣的:如何使用PHP創建三角形卷展欄?
當給定了輸入:4,7,3,6,7
輸出這樣的:
81
40 41
21 19 22
11 10 9 13
4 7 3 6 7
我只能嘗試像這將:
for($i = 1; $i<=5;$i++){
for($j=0; $j<$i; $j++){
echo "4";
}
echo "<br/>";
}
下一個我很困惑
任何解決方案來解決我的問題?
<?php
$input = array(4, 7, 3, 6, 7);
$lines = rollup($input);
function rollup ($input) {
$return = array();
$line = array();
if (count($input) > 0) {
foreach ($input as $k=>$v) {
if (isset($input[$k+1]))
$line[] = $v + $input[$k+1];
}
$return = implode(' ', $input);
rollup($line);
}
if (!empty($return))
echo $return . '<br />';
}
?>
您可以使用此代碼
<?php
$arr = [4, 7, 3, 6, 7];
$count = count($arr);
$finalStr = "";
while($count>0){
$str = "";
foreach($arr as $key=>$val){
$arr[$key] = $arr[$key]+$arr[$key+1];
$str .="$val ";
}
$str .= "\n";
$finalStr = $str . $finalStr;
unset($arr[count($arr)-1]);
$count--;
}
echo $finalStr;
?>
檢查現場演示:https://eval.in/609908
輸出是:
81
40 41
21 19 22
11 10 9 13
4 7 3 6 7
試試這個,
<?php
$a = 4;
$b = 7;
$c = 3;
$d = 6;
$e = 7;
for($y = 1; $y<=5;$y++){
for($z=0; $z<$y; $z++){
$f = $a+$b;
$g = $b+$c;
$h = $c+$d;
$i = $d+$e;
$j = $f+$g;
$k = $g+$h;
$l = $h+$i;
$m = $j+$k;
$n = $k+$l;
$o = $m+$n;
}
}
echo $o.'<br/>';
echo $m.' '.$n.'<br/>';
echo $j.' '.$k.' '.$l.'<br/>';
echo $f.' '.$g.' '.$h.' '.$i.'<br/>';
echo $a.''.$b.' '.$c.' '.$d.' '.$e;
?>
只給另一種解決辦法,因爲我喜歡「謎題」像這樣的,我給你這一點:
<pre>
<?php
//init
$input = [4, 7, 3, 6, 7];
$output = [$input];
//process
while(count($input) > 1) {
foreach($input as $key => $val) {
$key ? $input[] = $val + $prev : $input = array();
$prev = $val;
}
array_unshift($output, $input);
}
//output
array_walk($output, function($line){
echo implode(' ', $line) . "\n";
});
?>
</pre>
看到它的工作here
建設成果的一個數組,扭轉陣列,然後遍歷該數組以回顯值 –