Java 对于给定的自然数n(n<20),在屏幕上输出仅由“*”构成的n行的 几种 三角形。第一行后面显示1个* 第二行后面显示3个*
时间: 2023-11-30 14:03:21 浏览: 73
好的,这是一个很好的编程问题。我来给你讲解一下思路。
首先,我们需要用循环来输出多行。因为行数是由用户输入的,所以我们需要使用一个变量来存储行数。假设这个变量名为n。
然后,我们需要确定每行输出多少个*。根据题目要求,第一行输出1个,第二行输出3个,以此类推,每行输出的个数是奇数且递增的。因此,我们可以用一个变量来存储当前行应该输出的*的个数。假设这个变量名为count。
接着,我们需要在每行输出*之前输出若干个空格,以保证三角形的形状。根据题目要求,每行的空格数是固定的,等于n减去当前行应该输出的*的个数。假设这个变量名为space。
最后,我们就可以开始输出每行了。外层循环用来控制行数,内层循环用来输出空格和*。具体的代码实现如下:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for (int i = 1; i <= n; i++) {
int count = 2 * i - 1;
int space = n - count;
for (int j = 0; j < space; j++) {
System.out.print(" ");
}
for (int j = 0; j < count; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
```
当用户输入5时,输出的三角形如下:
```
*
***
*****
*******
*********
```
希望这个解释能够帮助你理解这道题目的解法。
阅读全文