作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有这个代码:
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/
这个问题在这里已经有了答案: How can I vertically center a div element for all browsers using CSS? (48 个答案) How
我是一名优秀的程序员,十分优秀!