给定数字N,返回最大数字<= N,该数字可被3整除

时间:2018-07-29 01:05:03

标签: php

如果数字是3的整数,则返回yes,如果不是,则总是减去1,直到数字能够除以3,例如5/3不能是3的整数,所以我想说的是从5减去直到3,在这种情况下3是3的整数。

这是我尝试过的代码,但无法正常工作

$num = 5;
if($num%3==0){
    echo 'yes';
}else{
    echo 'No';
    $num= $num-1;
}

echo $num;

2 个答案:

答案 0 :(得分:1)

这是您的意思吗?

$num = 5;

//If number is divisible on 3.
if( $num %3 == 0 ){
    echo 'yes';

//If number is not divisible on 3.    
}else{
    echo 'No';
    //Make the number divisible of 3.
    $num += (3 - ($num% 3)) % 3;
}

echo $num;

答案 1 :(得分:0)

编辑:对于在此特定实例中更干净的代码,Dan's answer(如下)使用更好的模式。我实际上建议使用他,因为这样可以避免不必要的循环重复。


我认为您正在寻找的是while loop

<?php
$num = 5;
while(TRUE) {
  if($num%3 == 0) {
    echo 'Yes';
    break;
  } else {
    echo 'No';
    $num = $num-1;
  }
}
?>

break语句特别重要,因为它确保循环不会无限期地运行。