我是 Java 的新手,现在我想更好地学习 for 循环。我做了一些例子,但我不知道如何做一个看起来像这样的三角形: 对于 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
如何让它倒序?
最佳答案
我们可以使用函数 int numberForRow(int row)
来执行合适的转换。然后可以像 r = numberForRow(i); 这样使用该函数;打印(r)
。它需要映射这个:
row (i) -> display number (r) 6 1 5 2 4 3 3 4 2 5 1 6
我觉得你可以写:)
查看输入 (i) 和输出 (r) 之间的关系 - 注意到它们总是加起来相同的值可能很有用,因此一点点数学应该可以解决问题。
(虽然函数不是严格要求的,但我发现这样的函数可以帮助解决问题,尤其是在这种情况下,可以很好地说明转换 - 它也适用于“更高级”的转换,例如在最初的问题中 ;-)
关于java - Java中的三角形数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19083791/