// import std.random.*
from std import random.*
main() {
let number: Int8 = Random().nextInt8()
println(number)
if (number % 2 == 0) {
// 偶数
println("even")
} else {
// 奇数
println("odd")
}
// let number = 1
// // Error, mismatched types
// if (number) {
// println("Non-zero number")
// }
let speed = Random().nextFloat64() * 20.0
println("${speed} km/s")
if (speed > 16.7) {
println("3.第三宇宙速度,鹊桥相会")
} else if (speed > 11.2) {
println("2.第二宇宙速度,嫦娥奔月")
} else if (speed > 7.9) {
println("1.第一宇宙速度,腾云驾雾")
} else {
println("0.脚踏实地,仰望星空")
}
println("---------------------")
let zero: Int8 = 0
let one: Int8 = 1
let voltage = 5.0
let bit = if (voltage < 2.5) {
zero
} else {
one
}
println("bit : ${bit}")
println("---------------------")
var root = 0.0
var min = 1.0
var max = 2.0
var error = 1.0
let tolerance = 0.1 ** 10
while (error ** 2 > tolerance) {
root = (min + max) / 2.0
error = root ** 2 - 2.0
if (error > 0.0) {
max = root
} else {
min = root
}
}
println("The square root of 2 is approximately equal to : ${root}")
println("---------------------")
let random = Random()
var totalPoints = 0
var hitPoints = 0
do {
// 在 ((0, 0), (1, 1)) 这个正方形中随机取点
let x = random.nextFloat64()
let y = random.nextFloat64()
// 判断是否落在正方形内接圆里
if ((x - 0.5) ** 2 + (y - 0.5) ** 2 < 0.25) {
hitPoints++
}
totalPoints++
} while (totalPoints < 1000000)
let pi = 4.0 * Float64(hitPoints) / Float64(totalPoints)
println("The approximate value of pi is : ${pi}")
println("---------------------")
// let metaArray = [r'甲', r'乙', r'丙', r'丁', r'戊', r'己', r'庚', r'辛', r'壬', r'癸'];
let metaArray = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']
// let noumenonArray = [r'寅', r'卯', r'辰', r'巳', r'午', r'未', r'申', r'酉', r'戌', r'亥', r'子', r'丑']
let noumenonArray = ['寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥', '子', '丑']
let year = 2024
// 年份对应的天干索引
let metaOfYear = ((year % 10) + 10 - 4) % 10
// 此年首月对应的天干索引
var index = (2 * metaOfYear + 3) % 10 - 1
println("农历 2024 年各月干支:")
for (noumenon in noumenonArray) {
print("${metaArray[index]}${noumenon} ")
index = (index + 1) % 10
}
println()
println("-----------------------------------------------")
var sum = 0
for (i in 1..=100) {
sum += i
}
println(sum)
println("-----------------------------------------------")
// 遍历1到100之间的所有整数
for (i in 1..=100) {
// 检查当前数字是否为偶数
if (i % 2 == 0) {
// 如果是偶数,则打印该数字
println(i)
}
}
println("------------------------------------------------")
let array = [(1, 2), (3, 4), (5, 6)]
for ((x, y) in array) {
println("${x}, ${y}")
}
println("------------------------------------------------")
var number2 = 2
for (_ in 0..5) {
number2 *= number2
}
//4294967296
println(number2)
println("------------------------------------------------")
// i 为奇数才会执行循环体
for (i in 0..8 where i % 2 == 1) {
println(i)
}
println("------------------------------------------------")
// 遍历数组,找到第一个能被5整除的数
let numbers = [12, 18, 25, 36, 49, 55]
for (number in numbers) {
if (number % 5 == 0) {
println(number)
break
}
}
}