原文: https://www.programiz.com/kotlin-programming/examples/pyramid-pattern
在此程序中,您将学习在 Kotlin 中创建金字塔,半金字塔,倒金字塔,Pascal 三角形和 Floyd 三角形唱歌控制语句。
源代码清单:
以下是等效的 Java 代码:创建金字塔和图案的 Java 程序
使用*,数字和字符打印三角形的程序
示例 1:使用*
打印半金字塔的程序
*
* *
* * *
* * * *
* * * * *
源代码
fun main(args: Array<String>) {
val rows = 5
for (i in 1..rows) {
for (j in 1..i) {
print("* ")
}
println()
}
}
示例 2:使用数字打印半金字塔的程序
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
源代码
fun main(args: Array<String>) {
val rows = 5
for (i in 1..rows) {
for (j in 1..i) {
print("$j ")
}
println()
}
}
示例 3:使用字母打印半金字塔的程序
A
B B
C C C
D D D D
E E E E E
源代码
fun main(args: Array<String>) {
val last = 'E'
var alphabet = 'A'
for (i in 1..last - 'A' + 1) {
for (j in 1..i) {
print("$alphabet ")
}
++alphabet
println()
}
}
使用*和数字打印倒置半金字塔的程序
示例 4:使用*
打印倒置半金字塔
* * * * *
* * * *
* * *
* *
*
源代码
fun main(args: Array<String>) {
val rows = 5
for (i in rows downTo 1) {
for (j in 1..i) {
print("* ")
}
println()
}
}
示例 5:使用数字打印倒置半金字塔
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
源代码
fun main(args: Array<String>) {
val rows = 5
for (i in rows downTo 1) {
for (j in 1..i) {
print("$j ")
}
println()
}
}
使用*和数字显示金字塔和倒置金字塔的程序
示例 6:使用*
打印完整金字塔的程序
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
源代码
fun main(args: Array<String>) {
val rows = 5
var k = 0
for (i in 1..rows) {
for (space in 1..rows - i) {
print(" ")
}
while (k != 2 * i - 1) {
print("* ")
++k
}
println()
k = 0
}
}
示例 7:使用数字打印金字塔的程序
1
2 3 2
3 4 5 4 3
4 5 6 7 6 5 4
5 6 7 8 9 8 7 6 5
源代码
fun main(args: Array<String>) {
val rows = 5
var k = 0
var count = 0
var count1 = 0
for (i in 1..rows) {
for (space in 1..rows - i) {
print(" ")
++count
}
while (k != 2 * i - 1) {
if (count <= rows - 1) {
print((i + k).toString() + " ")
++count
} else {
++count1
print((i + k - 2 * count1).toString() + " ")
}
++k
}
k = 0
count = k
count1 = count
println()
}
}
示例 8:使用*
打印倒置完整金字塔
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
源代码
fun main(args: Array<String>) {
val rows = 5
for (i in rows downTo 1) {
for (space in 1..rows - i) {
print(" ")
}
for (j in i..2 * i - 1) {
print("* ")
}
for (j in 0..i - 1 - 1) {
print("* ")
}
println()
}
}
示例 9:打印 Pascal 三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
源代码
fun main(args: Array<String>) {
val rows = 6
var coef = 1
for (i in 0..rows - 1) {
for (space in 1..rows - i - 1) {
print(" ")
}
for (j in 0..i) {
if (j == 0 || i == 0)
coef = 1
else
coef = coef * (i - j + 1) / j
System.out.printf("%4d", coef)
}
println()
}
}
示例 10:打印弗洛伊德三角形
1
2 3
4 5 6
7 8 9 10
源代码
fun main(args: Array<String>) {
val rows = 4
var number = 1
for (i in 1..rows) {
for (j in 1..i) {
print("$number ")
++number
}
println()
}
}