我是Java的新手,现在我想更好地学习循环。我做了一些例子,但我不知道如何做一个看起来像这样的三角形: 对于n = 6:
111111
22222
3333
444
55
6
我的代码到现在为止:
class Pyramid
{
public static void main (String[] args)
{
int i,n=9,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++) {
System.out.print(i); }
System.out.print("\n");
}}}
但我设法做到这一点看起来像这样:
1
22
333
4444
55555
666666
如何按相反顺序制作?
答案 0 :(得分:4)
您的问题是,您的外部for
循环从6
转到1
,因此您需要撤销该内容。
更改
for(i=n;i>=1;i--) {
要
for(i = 1; i <= n; i++) {
进一步说明,以便了解for
循环中发生的事情:
for
循环对三个子句进行操作:启动的位置,循环运行的条件以及运行后的操作。
------v
for(i = 1; i <= n; i++) {
这是作业。您将变量设置为数字,这是循环开始的位置。在这种情况下,我们从i = 1
开始,因为我们只想在第一行打印一个1
。在第三个子句中,我们将增加它(读取:向其添加一个),然后再次运行循环。
--------------v
for(i = 1; i <= n; i++) {
这是条件。只要此条件的计算结果为true
,循环就会运行。换句话说,如果n = 6
,此循环将在i <= 6
时运行。
--------------------v
for(i = 1; i <= n; i++) {
这是每次循环执行时会发生的事情。在i = 1
后运行一次后,我们会增加i
,现在i = 2
。这将发生在条件(i <= n
)评估为false
之前,即i = 7
时。如果条件为false
,则循环将终止。
答案 1 :(得分:4)
我们可以使用一个函数int numberForRow(int row)
来执行合适的转换。然后可以像r = numberForRow(i); print(r)
一样使用该函数。它需要映射这个:
row (i) -> display number (r) 6 1 5 2 4 3 3 4 2 5 1 6
我认为你可以写下来:)
查看输入(i)和输出(r)之间的关系 - 注意它们总是加起来相同的值可能是有用的,所以一点点数学应该可以做到这一点。
(虽然一个函数不是严格要求的,但我发现这些函数可以帮助解决问题,特别是在这种情况下,很好地说明了转换 - 它也适用于“更高级”的转换,例如在最初的问题中; - )
答案 2 :(得分:2)
public class Pyramid {
public static void main (String[] args)
{
int i,n=9,j;
for(i=1;i<=n;i++)
{
//for(j=1;j<=i;j++) {
for(j=n;j>=i;j--) {
System.out.print(i);
}
System.out.print("\n");
}
}
}
这应该有所帮助。
答案 3 :(得分:2)
可以使用以下方法完成:
public class Main {
public static void main(String[] args) {
int n = 6;
int m =n;
for (int i = 1; i <= n; i++,m--) {
for (int j = 1; j <= m; j++) {
System.out.print(i);
}
System.out.println();
}
}
}
答案 4 :(得分:0)
如果要打印三角形数字,请使用以下代码
`public class Triangular{
public static void main(String[] args) {
int i = 0;
int j =0;
int count =0;
for (i=1;i<=10;i++){
count = 0; // This is a program to print triangular numbers in JAVA
for(j=1;j<=i;j++){
count = count + j;
}
System.out.println(count);
}
}
}`