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