gpt4 book ai didi

java - 四象限三角形

转载 作者:行者123 更新时间:2023-12-02 12:48:13 25 4
gpt4 key购买 nike

所以我有这个代码:

public class Triangle
{
static int num;

public static void main (String[] args)
{
num = Integer.parseInt(args[0]);
Q1();
Q2();
Q3();
Q4();
}

public static void Q1()
{
for(int i=0;i<=num;i++)
{
for(int j=0;j<i;j++)
{
System.out.print("*");
}
System.out.println();
}

}

public static void Q2()
{
for(int i=0;i<=num;i++)
{
for(int j=num;j>0;j--)
{
if (i<j)
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
}

}

public static void Q3()
{
for (int i=0;i<num;i++)
{
for (int j=0;j<i;j++)
{
System.out.print(" ");
}

for (int j=i;j<num;j++)
{
System.out.print("*");
}
System.out.println();
}

}

public static void Q4()
{
for(int i=0;i<=num;i++)
{
for(int j=num;j>i;j--)
{
System.out.print("*");
}
System.out.println();
}

}

}

它输出如下:

*
**
***
****
*****
*
**
***
****
*****
*****
****
***
**
*
*****
****
***
**
*

我们需要做的是,我们需要将每个方法安排到相应的象限,例如,当仅调用 Q1 时,它需要在笛卡尔平面中的象限 1 的范围内显示星号。

因此,如果调用 Q1、Q2、Q3 和 Q4,它应该如下所示:

    **
****
******
********
**********
**********
********
******
****
**

我将如何将每种方法安排到各自的象限?

最佳答案

这里有一个例子。

注意:最重要的是缓冲区。您必须能够使用缓冲区打印所有象限或它们的任何组合。

注意2:您必须遵守Java约定!

public static void main(String[] args) {
int num = Math.max(1,Integer.parseInt(args[0]));

char[][] buffer = new char[num * 2][num * 2]; // The Buffer is needed
writeQ1(buffer, num);
writeQ2(buffer, num);
writeQ3(buffer, num);
writeQ4(buffer, num);
printBuffer(buffer);
}

// With a buffer, this method is needed
public static void printBuffer(char[][] buffer) {
for (char[] cs : buffer) {
for (char c : cs) {
if (c == 0) {
System.out.print(' ');
} else {
System.out.print(c);
}
}
System.out.println();
}
}

// The next methods can be refactored!
public static void writeQ1(char[][] buffer, int num) {
for (int i = 0; i <= num; i++) {
for (int j = 0; j < i; j++) {
buffer[i][j + num] = '*';
}
}
}

public static void writeQ2(char[][] buffer, int num) {
for (int i = 0; i <= num; i++) {
for (int j = 0; j < i; j++) {
buffer[i][j + (num - i)] = '*';
}
}
}

public static void writeQ3(char[][] buffer, int num) {
for (int i = 0; i <= num; i++) {
for (int j = 0; j < i; j++) {
buffer[2*num - i][j + (num - i)] = '*';
}
}
}

public static void writeQ4(char[][] buffer, int num) {
for (int i = 0; i <= num; i++) {
for (int j = 0; j < i; j++) {
buffer[2*num - i][j + num] = '*';
}
}
}

关于java - 四象限三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44692543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com