2017-04-03 43 views
0

我正在構建一個函數,它允許用戶通過傳遞一個整數來在動態創建的表格中選擇一個單元格。
即,如果我有一個3x3的網格,並且用戶通過數字4,程序應該知道他想要第二行的第一個單元格。 (單元格將按行計數) 正如我所提到的,表格是動態創建的,可以是任意大小。
我可以用一堆if語句來做到這一點,但我想知道是否有一種算法可以很容易地解決這個問題。在表格中獲取單元格行和列的算法

(附註:我使用的是非常基本的編程語言,所以請,沒有花哨的Python的數學函數... :))

回答

1

所有你需要做的是通過列鴻溝,並找到其餘。事情是這樣的:

input = 4 
row = floor(input/columns) 
column = input % columns 
+0

謝謝!我知道這很簡單!我只是有一些心理障礙...... :) – DaveyD

1

假設輸出應該是基於1個的索引

input = n, k // n * n grid, k number 

row = floor((k - 1)/n) + 1; 
col = k % n; 
if(col == 0) { 
    col += n; 
} 

// print row, col 
+0

謝謝。事實上,我希望它是基於1。但是,我無法弄清楚你的指示。如果n是用戶輸入,那麼網格將不是n * n。什麼是k?無論如何,感謝-1和+1的詭計 – DaveyD

+0

我從來沒有想過你不會理解n和k。根據你的問題,n = 3和k = 4。我也發表評論 –