我想不出如何解决以下问题:有一个数字n.输出数字到控制台的顺序由一个空格分隔,但要使下一个数字在迭代中输出的次数与它是一个数字一样多,并在同一时间,使有没有超过n位数在输出中. С任何人建议正确的算法?
示例:n = 7,需要在Kotlin中打印(1 2 2 3 3 3 4)
我的尝试:
var n = 7
var count = 1
var i = 1
for (count in 1..n) {
for (i in 1..count) {
print(count)
}
}
}
5条答案
按热度按时间sy5wg1nm1#
你可以使用“@”来命名循环,如果你想从循环中中断,你可以在Kotlin中使用这个语法,它对我很有效,对于kotlin标记的break,你可以看下面的参考:link
lo8azlld2#
count.toString()
将整数转换为字符串,.repeat()
函数将字符串重复count
次。如果您需要在每个数字之间添加空格,可以添加以下内容:
print(" ")
olhwl3o23#
使用
generateSequence
和Collections函数:axkjgtzd4#
你的例子是正确的,你必须在印刷字体之间加一个空格
你可以按照代码从这个链接Kotlin语言代码片段
或以下代码片段
}
0sgqnhkj5#
为了完整起见,这里有另一种方法,您可以编写自己的序列函数,该函数根据需要生成单个值(而不是创建中间列表)
在这种情况下不是什么大事,但很高兴知道!