数字的大小印刷

Number's print in its sizes

我必须打印这样的东西

但我遇到运行时错误和错误的答案

输入:

153

输出:

1:1

5:55555

3:333

获取一个整数并按其大小打印每个数字

import java.util.Scanner;

public class q9774 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();

        String entery = Integer.toString(n);
        char[] E = entery.toCharArray();
        for (char value : E) {
            System.out.print(value + ": ");
            if (value == 0) continue;
            else {
                for (int i = 0; i < Integer.parseInt(String.valueOf(value)); i++) {
                    System.out.print(value);
                }
                System.out.println();
            }
        }
    }
}

自 Java-11 起,您可以使用 String#repeat 将字符串重复指定次数。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();

        String entry = Integer.toString(n);
        for (char value : entry.toCharArray()) {
            System.out.print(value + ": ");
            System.out.println(String.valueOf(value).repeat(Character.getNumericValue(value)));
        }
    }
}

样本运行:

153
1: 1
5: 55555
3: 333

处理每个字符的另一种方法是将字符串拆分为每个字符,然后重复它的次数等于它的数值。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        String entry = Integer.toString(n);

        for (String s : entry.split("")) {// Split on each character
            System.out.print(s + ": ");
            System.out.println(s.repeat(Integer.parseInt(s)));
        }
    }
}

这是一种方法。

  • 将 int 转换为字符串,然后转换为 char[] 数组
  • 打印后面跟自己重复的字符。
  • 任何字符数字 - '0' 是该字符表示的相同数量的数值。所以字符 '7' 的 int 值为 '7' - '0' 或 7.
int i = 153;
for (char c : Integer.toString(i).toCharArray()) {
        System.out.printf("%c:%s%n", c, (c+"").repeat(c-'0'));
}

版画

1:1
5:55555
3:333
        

我为每个数字添加了一个嵌套循环,并根据 j <= i; 条件下字符串中值的索引重复该嵌套循环:

Scanner input = new Scanner(System.in);
int n = input.nextInt();

String entery = Integer.toString(n);
char[] E = entery.toCharArray();
for (int i = 0; i < E.length; i++) {
    for (int j = 0; j <= i; j++) {
        System.out.print(E[i]);
    }
    System.out.println();
}