2016-07-22 46 views
2

我發現了一個問題對谷歌這樣的:如何使用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/>"; 
} 

下一個我很困惑

任何解決方案來解決我的問題?

+0

建設成果的一個數組,扭轉陣列,然後遍歷該數組以回顯值 –

回答

3
<?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 />'; 
} 

?> 
1

您可以使用此代碼

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

試試這個,

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

只給另一種解決辦法,因爲我喜歡「謎題」像這樣的,我給你這一點:

<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