package com.hua.algorithm;
public class Demo01 {
public static void main(String[] args) {
// method1(); // 两个for循环实现打印99乘法表
// method2(); // 两个for循环倒序打印99乘法表
// method3(1); // 使用递归实现99乘法表
// method4(9); // 使用递归倒序打印99乘法表
// method5(); // 使用while循环实现99乘法表
// method6(); // 使用while循环实现倒序打印99乘法表
// method7(); // 用一个for循环实现打印99乘法表
// method8(); // 用一个for循环倒序打印99乘法表
// method9(); // 使用do..while循环实现打印99乘法表
// method10(); // 使用do...while循环倒序打印99乘法表
// method11(); // 使用一个while循环实现打印99乘法表
// method12(); // 使用一个while实现倒序打印99乘法表
// method13(); // 使用一个do...while实现打印99乘法表
// method14(); // 使用一个do...while实现倒序打印99乘法表
// method15(1,1); // 使用递归实现打印99乘法表
method16(1,9); // 使用递归倒序打印99乘法表
}
/**
* 使用递归倒序打印99乘法表
*/
private static void method16(int i, int row) {
System.out.print(i + "*" + row + "=" + i*row + "\t");
if (i== row && row > 1) {
System.out.println();
row--;
i = 0;
}else if (i== row && row == 1) {
return;
}
i++;
method16(i, row);
}
/**
* 使用递归实现打印99乘法表
*/
private static void method15(int i,int row) {
System.out.print(i + "*" + row + "=" + i*row + "\t");
if (i == row && row < 9) {
System.out.println();
row++;
i = 0;
}else if(i == row && row == 9){
return;
}
i++;
method15(i, row);
}
/**
* 使用一个do...while实现倒序打印99乘法表
*/
private static void method14() {
int row = 9;
int i = 1;
do {
System.out.print(i + "*" + row + "=" + i*row + "\t");
if (i == row) {
System.out.println();
row--;
i = 0;
}
i++;
} while (row >= 1);
}
/**
* 使用一个do...while实现打印99乘法表
*/
private static void method13() {
int row = 1;
int i = 1;
do {
System.out.print(i + "*" + row + "=" + i*row + "\t");
if (i==row) {
System.out.println();
row++;
i = 0;
}
i++;
} while (row <= 9);
}
/**
* 使用一个while实现倒序打印99乘法表
*/
private static void method12() {
int row = 9;
int i = 1;
while (row >= 1) {
System.out.print(i + "*" + row + "=" + i*row + "\t");
if (i == row) {
System.out.println();
row--;
i = 0;
}
i++;
}
}
/**
* 使用一个while循环实现打印99乘法表
*/
private static void method11() {
int row = 1;
int i = 1;
while (row <= 9) {
System.out.print(i + "*" + row + "=" + i*row + "\t");
if(i == row){
System.out.println();
i = 0;
row++;
}
i++;
}
}
/**
* 使用do...while循环倒序打印99乘法表
*/
private static void method10() {
int row = 9;
do {
int i = 1;
do {
System.out.print(i + "*" + row + "=" + i*row + "\t");
i++;
} while (i <= row);
System.out.println();
row--;
} while (row >= 1);
}
/**
* 使用do..while循环实现打印99乘法表
*/
private static void method9() {
int row = 1;
do {
int i = 1;
do {
System.out.print(i + "*" + row + "=" + i*row + "\t");
i++;
} while (i <= row);
System.out.println();
row++;
} while (row <= 9);
}
/**
* 用一个for循环倒序打印99乘法表
*/
private static void method8() {
for (int row = 9,j = 1; row >= 1; j++) {
System.out.print(j + "*" + row + "=" + j*row + "\t");
if (j == row) {
System.out.println();
row--;
j = 0;
}
}
}
/**
* 用一个for循环实现打印99乘法表
* 实现思路
* 1.控制for循环只能打印9行
* 2.每打印完一行重置第一个乘数,第二个乘数也是行数
*/
private static void method7() {
for (int row = 1,j = 1; row <= 9; j++) {
System.out.print(j + "*" + row + "=" + j*row + "\t");
if (j == row) {
System.out.println();
row++;
j = 0;
}
}
}
/**
* 使用while循环实现倒序打印99乘法表
*
*/
private static void method6() {
int row = 9;
while (row >= 1) {
int i = 1;
while (i <= row) {
System.out.print(i + "*" + row + "=" + i*row + "\t");
i++;
}
System.out.println();
row--;
}
}
/**
* 使用while循环实现99乘法表
*/
private static void method5() {
int row = 1;
while (row <= 9) {
int j = 0;
while(j++ <= row){
System.out.print(j + "*" + row + "=" +j*row + "\t");
}
System.out.println();
row++;
}
}
/**
* 使用递归倒序打印99乘法表
* 实现思路
* 1.该方法调用9次
* 2.第一行打印9个,第二行打印8个以此类推第九行打印一个
*/
private static void method4(int number) {
for (int i = 1; i <= number; i++) {
System.out.print(i + "*" + number + "=" + i * number + "\t");
}
number--;
if (number >= 1) {
System.out.println();
method4(number);
}
}
/**
* 使用递归实现99乘法表
* 实现思路:
* 1.该方法调用9次
* 2.每调用以此打印一行
* 3.在9行包含9行以内继续调用该方法打印
*/
private static void method3(int number) {
for (int i = 1; i <= number; i++) {
System.out.print(i + "*" + number + "=" + i * number + "\t");
}
number++;
if (number <= 9) {
System.out.println();
method3(number);
}
}
/**
* 两个for循环倒序打印99乘法表
* 实现思路
* 1.要打印9行
* 2.第一行打印9个,第二行打印8个以此类推第九行打印一个
* 3.第二个乘数就是倒数的行数
*/
private static void method2() {
for (int i = 9; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + "\t");
}
System.out.println();
}
}
/**
* 两个for循环实现打印99乘法表
* 实现思路
* 1.要打印9行
* 2.第一行打印一个,第二行打印2个,以此类推第九行打印9个
* 3.第二个乘数,就是行数
*/
private static void method1() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + "\t");
}
System.out.println();
}
}
}