我正在為編程考試做準備。我被困在這個任務上,我理解模式的邏輯(至少我是這么認為的),但我不知道如何解決這個問題。
輸入的輸出a = 6需要像:
012345
123456
234567
345678
456789
567890
輸入的輸出a = 3需要像:
012
123
234
輸入的輸出a = 4需要像:
0123
1234
2345
3456
但我得到了這個:
0 1 2 3 4 5
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
這是我的代碼:
for (int i = 0; i <= a; i ) {
for (int j = i; j < a; j ) {
System.out.print(j " ");
}
System.out.println();
}
uj5u.com熱心網友回復:
您需要進行這些更改以獲得所需的輸出:
外
for回圈的終止條件應該是i < a;內
for回圈的終止條件應該是j < a i;您列印的數字不應該
j滿足j % 10您提供的資料樣本(對于輸入a=6,它列印0為最后一行的最后一個數字,而不是10,這意味著我們不需要j,但只有它最右邊的數字是除以10) 的余數。
這就是它可以修復的方法:
public static void printNumbers(int a) {
for (int i = 0; i < a; i ) {
for (int j = i; j < a i; j ) {
System.out.print(j % 10 " ");
}
System.out.println();
}
}
uj5u.com熱心網友回復:
觀察: 由于它是二維輸出,我們將需要 2 個回圈(一個在另一個內部)。
此外,每一行的起點是最后一行開始的值 1 。
如果值超過 10,那么我們將只保留個位值(如最后一行)。(因此我們使用模數運算子 % 來幫助提取個位)
代碼 :
class Main {
public static void main(String[] args) {
int n = 6;
pattern(n);
}
private static void pattern(int n) {
int k = 0;
for (int i = 0; i < n; i ) {
for (int j = k; j < k n; j ) {
System.out.print(j % 10);
}
k = i 1;
System.out.println();
}
}
}
答案是:
012345
123456
234567
345678
456789
567890
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/493675.html
上一篇:雙擊重定向僅適用于回圈的第一行
下一篇:For回圈語法約定
