Adding zero to one digital number, is this possible?

public class MultiplicationTable { public static void main (String[]a){ int[] x; x = new int[10]; int i; int n=0; for (i=0;i<x.length;i++){ n++; x[i]=n; System.out.print(x[i] + " "); } System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[0] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[1] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[2] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[3] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[4] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[5] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[6] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[7] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[8] * x[i] + " "); System.out.println(); for (i=0;i<x.length;i++) System.out.print(x[9] * x[i] + " "); } } 

This is a program that will display the multiplication table as follows:

1 2 3 4 5 6 7 8 9 10

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

4 8 12 16 20 24 28 32 36 40

5 10 15 20 25 30 35 40 45 50

6 12 18 24 30 36 42 48 54 60

7 14 21 28 35 42 49 56 63 70

8 16 24 32 40 48 56 64 72 80

9 18 27 36 45 54 63 72 81 90

10 20 30 40 50 60 70 80 90 100

==================================================== ==============

It works and is correct, but I want it to look like this:

01 02 03 04 05 06 07 08 09 10

01 02 03 04 05 06 07 08 09 10

02 04 06 08 10 12 14 16 18 20

03 06 09 12 15 18 21 24 27 30

04 08 12 16 20 24 28 32 36 40

05 10 15 20 25 30 35 40 45 50

06 12 18 24 30 36 42 48 54 60

07 14 21 28 35 42 49 56 63 70

08 16 24 32 40 48 56 64 72 80

09 18 27 36 45 54 63 72 81 90

10 20 30 40 50 60 70 80 90 100

=================================================

Is there any way?

+4
source share
2 answers

Yes, you can! You can use String.format to add a null padding to your output.

Example:

String.format("%05d", 2) produce 00002 .

Some improvement to the current code:

I'm not sure why you intend to store the numbers inside the array (perhaps for a practical purpose), but this is not necessary since it goes from 1 to 10 anyway. Although, if you want to do this, you do not need both i and n .

 for (i=0; i<x.length; i++){ x[i] = i+1; System.out.print(x[i] + " "); } 

Secondly, I'm sure you understand that you have a lot of duplicate codes, and this is pretty consistent. You can do this using 2 nested for loops instead of 10 single loops:

 for (int row = 1; row <= 10; row++) { for (int col = 1; col <= 10; col++) System.out.print(String.format("%03d", row * col)); System.out.println(); } 
+15
source

Yes:

 String.format("%01d", x[i]*x[j]); is what you want. 

If you are familiar with printf in C, this will be familiar. If not, read the java link on String.format format Strings .

Alternatively, instead of 10 System.out.println you can use a double nested loop with two counters. One to calculate which row is in j , and one for each column i .

+1
source

All Articles