您的位置:首页 > 编程语言 > PHP开发

PHP 不用求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)

2012-10-01 17:36 1106 查看
<?php
class Sum0 {
public function sum() {
return 0;
}
}

class Test {
private $a = array();

public function __construct() {
$this->a[0] = new Sum0();
$this->a[1] = $this;
}

public function sum($n) {
#这 !!n 是关键,当 n != 0 时, !!n = true = 1,进入递归,当 n == 0时,!!n = false = 0,递归中止,返回0
return $this->a[!!$n]->sum($n - 1) + $n;
}
}

#第二种方法,网上抄的,屌爆了
#直接用&&来终止递归
function sumn($n) {
$r = 0;
$n && ($r = (sumn($n - 1) + $n));
return $r;
}

$t = new Test();
echo $t->sum(5) . "<br>";
echo sumn(5);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐