Java 等腰三角形
本题目要求你在控制台输出一个由数字组成的等腰三角形。
具体的步骤是:1. 先用1,2,3,…的自然数拼一个足够长的串
2. 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。
思路
先理解题意其实这个题目就是用 123456789 10 11 12 按照一定的顺序组成一个等腰三角形。所以我们得找规律;很简单这个规律就是最下面一行的长度等于2N-1然后我们一共需要的数字长度为 (2n-3)+2n-1这个规律就自己找了。会了这个规律看代码也就简单了。所以这边我们按这个规律数数字就行了
public static void main(String[] args) {
int n = sc.nextInt();
int sum = (2n-3)+2n-1;
//算出所需要的字符
String str = "";
for (int i = 1; str.length() < sum; i++) {
str += String.valueOf(i);
}
char[] ch = str.substring(0, sum).toCharArray();
// 第一行
for (int j = 0; j < n - 1; j++) {
System.out.print(".");
}
System.out.println(1);
// 第二行~第n-1行
for (int i = 1; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
System.out.print(".");
}
System.out.print(ch[i]);
for (int j = 0; j < i * 2 - 1; j++) {
System.out.print(".");
}
System.out.println(ch[sum - i]);
}
//第n行
for (int i = n - 1; i < sum - n + 2; i++) {
System.out.print(ch[i]);
}
}
}