プロが教える店舗&オフィスのセキュリティ対策術

JAVAについて質問です。

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);

int n = in.nextInt();
int count = 1, space = 0;
for (int i = 1; i < 2 * n; i++) {
if (i <= n) {
space++;

} else {
space--;
}

for (int spc = n - space; spc > 0; spc--) {
System.out.print(" ");
}
for (int j = 0; j < count; j++) {
System.out.print(i);
}
if (i < n) {
count = count + 2;
} else {
count = count - 2;
}
System.out.println();
}
in.close();
}
}

↑のプログラムで標準入力に例えば8と入力すると、

_______1↵
______222↵
_____33333↵
____4444444↵
___555555555↵
__66666666666↵
_7777777777777↵
888888888888888↵
_9999999999999↵
__1010101010101010101010↵
___111111111111111111↵
____12121212121212↵
_____1313131313↵
______141414↵
_______ 15↵

という風なひし形が出力されます。
「_」は実際には出力されません。
これを
_______1↵
______222↵
_____33333↵
____4444444↵
___555555555↵
__66666666666↵
_7777777777777↵
888888888888888↵
_9999999999999↵
__00000000000↵
___111111111↵
____2222222↵
_____33333↵
______444↵
_______5↵

という風にしたいです。
(上から10段目以降は1の位が出力されるようにしたいのです)
それにはこのプログラムをどう修正すればよいでしょうか?

A 回答 (2件)

この記述に% 10を加えました


System.out.print(i % 10);
凄いですね、ひし形が出来ましたよ

========ソース===============
import java.util.Scanner;

public class square {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);

int n = in.nextInt();
int count = 1, space = 0;
for (int i = 1; i < 2 * n; i++) {
if (i <= n) {
space++;

} else {
space--;
}

for (int spc = n - space; spc > 0; spc--) {
System.out.print(" ");
}
for (int j = 0; j < count; j++) {
System.out.print(i % 10);
}
if (i < n) {
count = count + 2;
} else {
count = count - 2;
}
System.out.println();
}
in.close();
}
}
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています