【发布时间】:2018-09-25 05:06:31
【问题描述】:
我用 88 对程序进行了测试,剩下一颗星来完成三角形。 87,两颗星 86 三颗星。这种情况持续了某些数字。
这是编程generate函数的两个选项
• 一种是计算最后一行的长度,例如maxLen,并使用双 for 循环生成一行一星、一行两星、一行三开始,等等,以maxLen 星号结尾。 maxLen 的值是大于或等于
二次方程的更大解x ( x + 1 ) = 2 * num.
• 另一种方法是在需要换行符的地方执行System.out.println() 时使用一个for 循环打印num 颗星。需要换行符的点可以使用两个伴随的整数变量来计算,比如len 和count。这里前者是正在生成的行的长度,count 是行中尚未打印的星数。我们首先将值 1 设置为两个整数变量。在每一轮迭代中,我们减少count的值,如果count的值变为0,我们插入换行符,增加len的值,然后将len的值复制到count . 当循环终止时,如果count的值既不等于0也不等于count,我们通过添加更多星来扩展当前行。
import java.util.*;
public class TriangleSingle
{
public static void generate(int x) //Generates the Triangle
{
int len, count;
len = 1;
count = 1;
for (int k = 1; k <= x; k++)
{
System.out.print("*");
count --;
if (count == 0)
{
System.out.println();
len ++;
count = len;
}
}
if (count!= 0 || count != len)
{
System.out.println("*"); //Completes the triangle if needed
// This is the **problem spot**
}
【问题讨论】:
-
你需要两个嵌套循环。行的外循环。连续星星的内循环。计算星星打印。如果打印的总星数 >= 请求的星数,则退出外循环。
标签: java loops if-statement triangle-count