我想打印以下图案:
* ** *** **** *****
我知道等式将是x+y<=5
。对于此等式,我们必须打印*
,但我无法获得for
循环条件。
请帮忙。
编辑:这是我写的代码:
public class Pattern{
public static void main(String[] args){
for(int i = 1; i <= 5; i++)
{
for(int j = 1; j <=5; j++)
System.out.print((-i+j)<=5 ? "*" : " ");
System.out.println("");
}
}
}
在第二象限中以直线表示的图案的等式将是y-x <= 5。但是for循环中的条件不满足。
答案 0 :(得分:1)
您还可以利用String formatting来实现这一点,在这种情况下,这比循环结构更好。 %s
表示将此字符串值打印给我,并将其作为参数传递给对象&#39;。 %5s
表示“打印”我传递的字符串值,它应该有5个字符的固定长度&#39;。
StringBuilder x = new StringBuilder();
for (int i = 5; i > 0; i--) {
System.out.println(String.format("%5s", x.append("*").toString()));
}
或使用printf
代替String.format
。 \n
表示换行符(println
自动将这个换行符添加到幕后)
StringBuilder x = new StringBuilder();
for (int i = 5; i > 0; i--) {
System.out.printf("%5s\n", x.append("*").toString());
}
答案 1 :(得分:0)
这是一个嵌套循环解决方案,有5次迭代。
for(int i = 1; i <= 5; i++)
{
for(int j = 5 - i; j > 0; j--)
{
System.out.print(" ");
}
for(int j = i; j > 0; j--)
{
System.out.print("*");
}
System.out.println();
}
第一个嵌套循环打印空格,空格为5 - iteration number
第二个嵌套循环打印*
,其数量等于迭代次数。
如果您希望n
次运行,只需将5
替换为n
。
此外,有许多网站可以帮助您解决这些问题,例如:Print Star Pattern in Java
答案 2 :(得分:-1)
代码说明:在这里,我们使用println()函数来打印输出,在打印了一个输出光标之后,在新行中移动了一个。 print()和println()函数之间的主要区别是; print()函数不会在屏幕上输出打印后将光标移动到新行中,但是对于println()函数,它会在打印输出后将光标移动到新行中。
此JAVA程序将使用star(*)打印直角三角形的图案。
*
**
***
****
*****
逻辑
我们使用了一个嵌套的for循环,该循环一直计数到第i个值,并一直打印星号直到该值。
程序
import java.util.*;
class sp2
{
public static void main(String args[])
{
int i,j,n;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of rows");
n = sc.nextInt();
for(i=1;i<=n;i++)
{
for(j=i;j<n;j++)
{
System.out.print(" ");
}
for(j=1;j<=i;j++)
{
System.out.print("*");
}
System.out.println("");
}
}
}
输出
*
**
***
****
*****