用两种PHP方法实现1到100之间偶数之和

如题所述

<?php
echo one(1, 100); // 方法一 : 使用for结构
echo "\n";
echo two(1, 100); // 方法二 : 使用while结构
echo "\n";
echo three(1, 100); // 方法三 : 使用do...while结构
echo "\n";
echo four(1, 100); // 方法四 : 使用递归函数
/**
 * 使用for结构
 * @param int $start 开始
 * @param ini $end 结束
 *
 * @return int 和
 */
function one($start = 0, $end = 0) {
// 判断函数有效条件
if( ($start == 0 && $end == 0) || ($end <= $start)) return 0;

    $num = 0;

    for($i = $start; $i <= $end; $i++){
        if($i % 2 == 0) { // 模运算
            $num += $i;
        }
    }

    return $num;
}
/**
 * 使用while结构
 * @param int $start 开始
 * @param ini $end 结束
 *
 * @return int 和
 */
function two($start = 0, $end = 0){
// 判断函数有效条件
if( ($start == 0 && $end == 0) || ($end <= $start)) return 0;
    $num = 0;
$i = $start; // 初始化增量$i

    while($i <= $end){
        if($i % 2 == 0) { // 模运算
            $num += $i;
        }
        $i++;
    }

    return $num;
}
/**
 * 使用do...while结构
 * @param int $start 开始
 * @param ini $end 结束
 *
 * @return int 和
 */
function three($start = 0, $end = 0){
// 判断函数有效条件
if( ($start == 0 && $end == 0) || ($end <= $start)) return 0;
    $num = 0;
$i = $start;
do{
        if($i % 2 == 0) { // 模运算
            $num += $i;
        }
        $i++;
}while($i <= $end);

    return $num;
}
/**
 * 使用递归函数
 * @param int $start 开始
 * @param int $end 结束
 * @param int $i 增量
 * @param int $num 和
 *
 * @return int 和
 */
function four($start = 0, $end = 0, $i = 0 , $num = 0){
// 判断函数有效条件
if( ($start == 0 && $end == 0) || ($end <= $start)) return 0;

static $i = 1, $num = 0; // 将增量变量$i与统计和的变量$num设为静态变量, 保存每次计算后的结果并计入下一次计算中

    if($i <= $end) {
if($i % 2 == 0){ // 还是模运算
$num += $i;
$i++;
return four($start, $end, $i, $num);
}else {
$i++;
return four($start, $end, $i, $num);
}
}else { // $i > 100, 跳出递归, 返回计算结果
return $num;
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-13
<?
$sum=0;
for($i=0;$i<=100;$i+=2){
$sum+=$i;
}
echo $sum;
?>
第2个回答  2010-07-13
<?php
$arr = range(0,100,2);
echo array_sum($arr);
?>

还有更简洁的么?
第3个回答  推荐于2017-10-11
$sum=0;
for($i=1;$i<=100;$i++){
if($i%2==0){
$sum+=$i;
}
}
echo $sum;

参考资料:http://www.wenlingnet.com

本回答被提问者采纳
第4个回答  2019-06-13
$sum=0;
for($i=1;$i<=100;$i++){
if($i%2==0){
$sum+=$i;
}
}
echo
$sum;
相似回答