跟我一起学“仓颉”编程语言—函数的练习题
·
一、练习题
1. 写一个函数,输入两个实数,计算这两个实数的调和平均数(调和平均数:)。
package Study
func fun(a!: Float64 = 2.0, b!: Float64 = 3.0): Float64 {
return 2.0 * a * b / (a + b);
}
main(): Int64 {
println(fun())
return 0
}
2. 写一个函数,倒叙输出1,2,3,4,5。
package Study
func fun(num!: Int64 = 5) {
for (i in num..0: -1) {
print("${i} ")
}
}
main(): Int64 {
fun()
return 0
}
3. 写一个函数,计算自然数n的阶乘。
package Study
func fun(n: Int64): Int64 {
if (n == 0 || n == 1) {
return 1
} else {
return n * fun(n - 1)
}
}
main(): Int64 {
println(fun(5))
return 0
}
4. 写一个函数,计算斐波那契数列的第n项(斐波那契数列:)。
package Study
// 方法1
func fun1(n: Int64): Int64 {
if (n == 1 || n == 2) {
return 1
} else {
return fun1(n - 1) + fun1(n - 2)
}
}
// 方法2
func fun2(n: Int64): Int64 {
// 初始值为数列第1项,为当前项的前2项
var a = 1
// 初始值为数列第2项,为当前项的前1项
var b = 1
// 当前项
var c = 0
// 项数
var i = 3
if (n == 1 || n == 2) {
return 1
} else {
while (i <= n) {
c = a + b
a = b
b = c
i++
}
return c
}
}
main(): Int64 {
println(fun1(7))
println(fun2(7))
return 0
}
5. 写一个函数,计算两个自然数的最小公倍数(最小公倍数:几个数共有的倍数中除0以外最小的那个数)。
package Study
/*
* 求最大公因数
*/
func fun1(x:Int64, y:Int64): Int64 {
var m = x
var n = y
var temp = m % n
while (temp != 0) {
// n作为被除数
m = n
// 余数做除数
n = temp
// 求余数
temp = m % n
}
return n
}
/*
* 求最小公倍数
*/
func fun2(x:Int64, y:Int64): Int64 {
return x * y / fun1(x, y)
}
main(): Int64 {
println(fun2(7, 8))
return 0
}
6. 写一个递归函数,计算1+2+3+4+...+n的和。
package Study
func fun(n: Int64): Int64 {
if (n == 1) {
return 1
} else if (n > 1) {
return n + fun(n - 1)
} else {
return 0
}
}
main(): Int64 {
println(fun(100))
return 0
}
二、小结
本章为大家详细的介绍了仓颉编程语言中函数练习题,下一章,为大家带来结构体的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!
更多推荐



所有评论(0)