FizzBuzzWhizz的算法思想分析

一、FizzBuzzWhizz 需求:

when run(3) return 'Fizz'
when run(5) return 'Buzz'
when run(7) return 'Whizz'
when run(3 * 5) return 'FizzBuzz'  //run 的參數(shù)為 3和5共同的倍數(shù)
when run(3 * 7) return 'FizzWhizz'  //run 的參數(shù)為 3和7共同的倍數(shù)
when run(5 * 7) return 'BuzzWhizz'  //run 的參數(shù)為 5和7共同的倍數(shù)
when run(3 * 5 * 7) return 'FizzBuzzWhizz'  //run 的參數(shù)為 3、5和7共同的倍數(shù)
其余情況:
when run(n) return n  // n 可以為 非 3、5、 7或3、5、7的倍數(shù)的數(shù)字 如:run(2)   return '2'

作業(yè)要求:
1.通過document.write()方法,將以上需求的每一條調(diào)用結(jié)果打印出來,結(jié)果會(huì)在屏幕右邊顯示
2.為每一條需求寫一個(gè)測(cè)試,測(cè)試?yán)诱?qǐng)見實(shí)例方法 test11.通過document.write()方法,將以上需求的每一條調(diào)用結(jié)果打印出來,結(jié)果會(huì)在屏幕右邊顯示

二、思路:

我的代碼總共10行左右,沒有用太過復(fù)雜的算法和大量的語句,是一個(gè)簡單的程序,思路清晰、簡單易懂。
過程:

功能函數(shù)function run(num):
1.首先聲明function run(num)函數(shù),num是參數(shù);
2.定義一個(gè)需求字符串?dāng)?shù)組var arr = Array('Fizz','Buzz','Whizz')和空字符串var result = '';
3.參數(shù)num分別按順序于與3、5、7整除取余,若余數(shù)是0,則空字符串result連接arr[i](i=0,1,2)形成新的字符串;
4.判斷result若為空則返回原num,否則返回result
5.方法二不建議,雖然少了一行代碼,但不易于閱讀。

測(cè)試函數(shù)function test(num):
1.聲明函數(shù)function test(num),num是參數(shù);
2.代碼只有一行,通過document.write()打印結(jié)果,里面調(diào)用run(num)函數(shù),傳入?yún)?shù)num<\br>換行符,即document.write('The test '+num.toString() + ' result is : '+ run(num) + <\br>)

三、代碼

功能代碼:

function run(num){
  var arr = Array('Fizz','Buzz','Whizz'); //定義字符串?dāng)?shù)組
  var result = ''; //定義空字符串
  if(num % 3 ==0 )   result += arr[0]; 
  if(num % 5 ==0 )    result += arr[1]; 
  if(num % 7 ==0 )    result + = arr[2];
  if(result  == '')  return num.toString();  
  return result;
 }
/*方法二:
function run(num){
  var result = '';  //定義空字符串
  if(num % 3 ==0 )    result += 'Fizz';
  if(num % 5 ==0 )    result +=  'Buzz';
  if(num % 7 ==0 )     result += 'Whizz';
  if(result  == '')  return num.toString();  
  return result;
 }
*/
function test(num) {  
  document.write('The test '+num.toString() + ' result is : '+ run(num) + <\br>)
}

測(cè)試代碼:

test(105);
test(3);
test(7);
test(5);
test(35);
test(4*7);
test(3*7);
test(2);

測(cè)試結(jié)果顯示:

Paste_Image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,638評(píng)論 18 399
  • 第1章 認(rèn)識(shí)JS JavaScript能做什么?1.增強(qiáng)頁面動(dòng)態(tài)效果(如:下拉菜單、圖片輪播、信息滾動(dòng)等)2.實(shí)現(xiàn)...
    mo默22閱讀 1,499評(píng)論 0 5
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,116評(píng)論 2 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • 動(dòng)態(tài)避障 Dynamic Obstacle Avoidance 我們?cè)谶M(jìn)行實(shí)際的AI操作時(shí),和之前的避墻會(huì)有區(qū)別,...
    Levi_Wan閱讀 4,060評(píng)論 1 1

友情鏈接更多精彩內(nèi)容