所以我今天花了幾個小時寫出邏輯,並將它變成代碼,但我完全停留在這一點上,我不知道該怎麼做。我現在只用java編程了幾個月,所以整個「邏輯」思維模式還沒有完成。任何人都可以幫助我思考如何在java中創建一個ulam螺旋的邏輯?如何在java中創建一個ulam螺旋?
import java.util.Arrays;
public class GridMaker {
private static int gridRow = 5; // R = length
private static int gridCol = 5; // C = height
private static int[][] grid = new int[gridRow][gridCol];
private static int totalSteps = (gridRow * gridCol); // total blocks on the grid
private static int location = 1; // location refers to the number in the box, ie. 1, 2, 3, etc.
private static int rowLength = 1;
public static void main(String[] args) {
grid[Calc.findArrayCenter(gridRow)][Calc.findArrayCenter(gridRow)] = 1;
rowBrowser();
colBrowser();
for (int r = 0; r < gridRow; r++){
for (int c = 0; c < gridCol; c++){
System.out.print(grid[r][c] + " ");
}
System.out.println("");
}
}
public static void rowBrowser() {
int rowCount = 1;
int x = 1;
int stepsInvolved = 2;
if (x < stepsInvolved) {
if (Calc.isOdd(rowCount) == true) {
grid[Calc.findArrayCenter(gridRow)][Calc.findArrayCenter(gridCol) + x] = location + 1;
stepsInvolved++;
}
}
location++;
x++;
}
private static void colBrowser() {
}
}
public class Calc {
public static int findArrayCenter(int center) {
int fcenter = 0;
if (center % 2 != 0)
fcenter = (int) ((center/2));
else
fcenter = (center/2);
return fcenter;
}
public static boolean isOdd(int num) {
boolean result = true;
if (num % 2 == 0)
result = false; // false = even, true = odd
return result;
}
}
在這一點上,做我需要做什麼來完成創建烏拉螺旋什麼?我現在正在處理的是數組跟蹤一個位置,遍歷一行中的每個步驟,然後下拉並遍歷列中的步驟,然後向每個計數器加1並繼續。幫幫我? 對於糟糕的格式,抱歉,這個網站在粘貼代碼時並沒有真正的幫助:... |
烏蘭螺旋是素數的陰謀。你在哪裏計算素數? (順便說一下,你的'isOdd'方法可以大大簡化爲單行體:'return(num&1)== 1;'。)另外,你的'findArrayCenter'邏輯是不必要的。由於'center'是一個'int','center/2'自動將結果截斷爲一個'int';因此,你可以簡單地'返回中心/ 2;'。 – 2013-05-05 04:48:02
我以後會計算它是否爲素數,現在我正在專注於使螺旋螺旋工作。並感謝關於尋找中心的提示,並測試它是否奇怪。 – 2013-05-05 05:13:21