亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php算法 有規律的算

php算法 有規律的算

PHP
Samor 2016-04-13 20:48:43
對一個自然數做如下操作,若為偶數,則把它除以2,若為奇數,則把它乘以3加1,經過如此有限次運算后,總可以得到自然數1。? 比如22:? 11? 34? 17? 52? 26? 13? 40? 20? 10? 5? 16? 8? 4? 2? 1 。編寫一個這樣的函數,輸入一個數a,按照算法1的操作步驟,直到a變成1,輸出 a變成1中間經歷的數。
查看完整描述

4 回答

已采納
?
qq_青棗工作室_0

TA貢獻446條經驗 獲得超754個贊

<?php


function bingbao($num) {

// 判斷是否自然數

if($num<1 || !is_int($num)) return "wrong number";

$result = "$num: ";

$numList = [];

while($num!==1) {

// 判斷是否偶數

if($num % 2 == 0) {

$num = $num / 2;

} else {

$num = $num * 3 + 1;

}

$numList[] = $num;

}

$result .= implode($numList, ' ');

return $result;

}

// 測試運行效果

for($i=1; $i<=10000; $i++) {

echo bingbao($i), '<BR><BR>';

}


查看完整回答
1 反對 回復 2016-04-14
?
chendahai

TA貢獻6條經驗 獲得超3個贊

遞歸執行就行啦 次數的話用個static變量存儲一下 到1的時候再把次數設為0 就行啦

查看完整回答
1 反對 回復 2016-04-14
?
我哈哈了

TA貢獻1條經驗 獲得超0個贊

<?php

function math($a){

????$numArray = [];
if(is_numeric($a)){

? ?while($a != 1){
? ? ? ?if($a%2 == 0){
? ? ? ? ? ?$a = $a/2;
? ? ? ? ? ?$numArray[]=$a;
? ? ? ?}else if($a%2 == 1){

? ? ? ? ? ?$a = $a*3+1;
? ? ? ? ? ?$numArray[]=$a;

? ? ? ?}
? ?}


}else{
? ?echo 'is not number!';
}

? ?echo $a;

var_dump($numArray);

}



查看完整回答
反對 回復 2016-08-21
  • 4 回答
  • 0 關注
  • 1810 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號