java中的同时满足全部条件,java – 如何在满足这些条件的同时打印以下序列

这实际上是一个面试问题.我不得不使用

Java打印以下内容:

9

9 8 9

9 8 7 8 9

9 8 7 6 7 8 9

. . .

. . .

在采访中,我写了一段令人尴尬的代码,但它仍然有效 – 使用外循环,两个内循环(一个用于递减序列,一个用于递增序列!)和一大堆变量.其中一个变量是每行的长度.

面试官让我试着用它来重写它

>只有一个外环和一个内环

>没有行长度变量.

注意:在看了答案后,我认为面试官并不是真正意味着第二个条件.他可能只是想让我简化我的代码,第二点只是从他嘴里蹦出来.

所以,后来回到家里,我到了这里:

int rowCnt = 5;

for(int i = 1; i <= rowCnt; i++)

{

int val = 9;

int delta = -1;

int rowLen = i * 2 - 1;

for(int j = 1; j <= rowLen; j++)

{

System.out.print(val + " ");

val += delta;

if(j >= rowLen / 2) delta = 1;

}

System.out.println();

}

在这里,我只使用一个内循环.我正在使用delta值来确定是否发生递增或递减.对于每一行,我将当前索引与行的中点进行比较并更改增量.

我满足了第一个条件 – 只有一个内循环.但是如果不使用行长度我就无法做到.

如何在不查找行长的情况下打印出来?

许多答案都是可以接受的,但我不得不选择一个,然后挑选一个最容易理解的答案.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值