2015-11-04 67 views
0

我正在玩在線測試來改進我的編碼邏輯,並且我有一個測試,我需要創建一個棋盤樣本,基本上輸入的是棋盤的行和列,然後生成被問到的輸出,但我對我的解決方案並不滿意,不知道是否可以在沒有臨時變量的情況下使用相同的輸出,例如將輸入值存儲在數組中並使用某些數組函數在循環內部保持循環給我不同的值。這裏是我的代碼:沒有使用Temp變量的解決方案

/* 
Sample output: 
0101010 
1010101 
0101010 
1010101 
*/ 
function chess(m, n) { //7,4 
    var zero = 0; 
    var um = 1; 
    var temp = 0; 

    for (var i = 0; i < n; i++) { 
     for (var r = 0; r < m; r++) { 

      if (temp === 1) { 
       document.write(um); 
       temp = 0; 
      } 
      else { 
       document.write(zero); 
       temp = 1; 
      } 
     } 
     document.write("<br>"); 
    } 
} 
chess(7, 4); 
+0

這是一個非常簡單的模式。你所需要的只是'(i + j)%2 == 0? '0':'1''。無論如何,這對SO來說不是一個好問題,所以當它在幾分鐘內關閉時不要感到驚訝。下次嘗試CodeReview :) – Luaan

+0

@Luaan'(i + j)%2'將會很好。你不需要三元操作符。 – Rajesh

+0

只是爲了好玩,儘量不要寫變量(不是m或n) –

回答

1

嘗試

function chess(m,n){ //7,4 
 
var zero = 0; 
 
var um = 1; 
 
var temp = 0; 
 

 
    for(var i = 0; i < n; i++){ 
 

 
     for(var r = 0; r < m; r++){ 
 

 
      if((i+r)%2 === 1){ 
 
       document.write(um); 
 
      }else{ 
 
       document.write(zero); 
 
      }      
 
     } 
 
     document.write("<br>");  
 
    } 
 
} 
 
chess(7,4);

1

您可以直接計算和打印。您不需要將其存儲在任何變量中。

function chess(m,n){ //7,4 
 
    for(var i = 0; i < n; i++){ 
 
     for(var r = 0; r < m; r++){ 
 
      document.write((i+r)%2); 
 
     } 
 
     document.write("<br>");  
 
    } 
 
} 
 
chess(7,4);

相關問題