记学习过程中的一次作业,让我想起了以前学习C语言的时候,也做过类似的作业,如有小伙伴需要C或其他语言的源码,我后续也可上传。
最简版:
public class PyramidMini{
public static void main(String[] args){
for(int i = 1; i <10; i++){
for(int j = 1; j <= i; j++){
System.out.print( i + "*" + j +"=" + i*j + "\t");
}
System.out.println();
}
}
}
在此基础上我们加一点点魔法:
1、正常输出
2、倒序输出:
仅需要将i的遍历顺序从1~9修改为从9~1即可。
3、右侧输出:
其中,最重要的部分是如何补齐剩余的制表符。
通过思考,我们发现,9列为固定内容,行中所缺的列数恰巧就是9-当前循环数,因此,我们只需要再添加以下代码,循环输出该数目的制表符即可^_^
for(int k = 9 - i; k > 0; k--){
System.out.print("\t");
}
完整代码如下:
import java.util.Scanner;
public class Pyramid{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入类型:");
int index = sc.nextInt();
switch(index){
case 1:{
for(int i = 1; i <10; i++){
for(int j = 1; j <= i; j++){
System.out.print( i + "*" + j +"=" + i*j + "\t");
}
System.out.println();
}
break;
}
case 2:{
for(int i = 9; i > 0; i--){
for(int j = 1; j <= i; j++){
System.out.print( i + "*" + j +"=" + i*j + "\t");
}
System.out.println();
}
break;
}
case 3:{
for(int i = 9; i > 0; i--){
for(int k = 9 - i; k > 0; k--){
System.out.print("\t");
}
for(int j = 1; j <= i; j++){
System.out.print( i + "*" + j +"=" + i*j + "\t");
}
System.out.println();
}
break;
}
case 4:{
for(int i = 1; i < 10; i++){
for(int k = 9-i; k>0; k--){
System.out.print("\t");
}
for(int j = 1; j <= i; j++){
System.out.print( i + "*" + j +"=" + i*j + "\t");
}
System.out.println();
}
break;
}
default:{
for(int i = 1; i <10; i--){
for(int j = 1; j <= i; j++){
System.out.print( i + "*" + j +"=" + i*j + "\t");
}
System.out.println();
}
break;
}
}
}
}