我用88进行了测试,结果只剩下一颗星星就完成了三角形。 87,两颗星86三颗星。这种情况持续了一定数量。
这是用于编程generate
函数的两个选项
•一种方法是计算最后一行的长度,例如maxLen
,然后使用double for循环生成一行一颗恒星,一行两颗恒星,一行三颗起点,以及依此类推,以maxLen
星的行结尾。 maxLen的值是大于或等于
二次方程x ( x + 1 ) = 2 * num.
•另一种方法是在需要换行符的地方执行System.out.println()
时,使用一个for循环打印num星。可以使用两个随附的整数变量len
和count
来计算需要换行的点。在这里,前者是要生成的行的长度,count
是行中尚未打印的星星数。我们首先将两个整数变量的值都设置为1。在迭代的每一轮,我们减小count
的值,如果count的值变为0,则插入换行符,增大len
的值,然后复制{{1 }}到len
。 当循环终止时,如果count
的值既不等于0也不等于count,则通过添加更多的星号来扩展当前行。
count
答案 0 :(得分:1)
Try this:-
public static void generate(int x) //Generates the Triangle
{
int len, count;
len = 1;
count = 1;
for (int k = 1; k <= x; k++)
{
for (int i = 1; i <= k; i++) {
System.out.print("*");
}
System.out.println();
}
}
答案 1 :(得分:1)
诀窍是增加内循环中已打印星星的数量c
,该数量将打印每一行,但要与外循环中所需的数量n
进行比较,以决定多少行打印。这样,我们可以确保打印完整的行,但是只要打印了至少n
个星号,我们就会停止。
public static void generate(int n)
{
for(int c=0, i=0; c<n; i++)
{
for(int j=0; j<=i; j++, c++)
System.out.print('*');
System.out.println();
}
}
答案 2 :(得分:0)
尝试一下!
public class pyramid {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
System.out.println("Input Length of pyramid : ");
int length = s.nextInt();
for (int i = 1; i <= length; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*\t");
}
System.out.println("\n");
}
}
答案 3 :(得分:0)
检查一下:
public static void generate(int x) //Generates the Triangle
{
int len, count;
len = 1;
count = 1;
for (int k = 1; k <= x;)
{
System.out.print("*");
count --;
if (count == 0)
{
System.out.println();
len ++;
k++;
count = len;
}
}