这里有两种方法,最好自己动手把这个样式写出来,然后结合代码研究比较清楚,建议看的时候可以把这个数的行号和列号标出来。
1
package 字母图形;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
//abs是Math类的静态方法,表示的是求出i-j的绝对值
char c=(char)(Math.abs(i-j)+'A');
System.out.print(c);
}
System.out.println();
}
}
}
2
package 字母图形;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//第一行输入行数n
int n=sc.nextInt();
//第二行输入列数m
int m=sc.nextInt();
int[][] array=new int[n][m];
int temp=65;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(i==j)
array[i][j]=temp;
else if(j>i)
array[i][j]=array[i][j-1]+1;
else if(j<i)
array[i][j]=array[i-1][j]+1;
//注意这里的j<i部分只能根据上一行的数值来计算,
//错误:array[i][j]=array[i][j-1]+1;此时这个数后面的数还没有确定,因为j是从前往后运算的
System.out.print((char)array[i][j]);
}
System.out.println();
}
}
}