自己做的课后习题,不保证完全正确,侵删
第一章
尝试创建一个项目,新建一个程序,输出字符串“我爱Go语言”。
package main
import "fmt"
func main(){
fmt.Println("我爱Go语言")
}
输出结果:
第三章
打印左上直角三角形
package main
import "fmt"
func main(){
// 读入需要生成多少行的左上直角三角形
var line int
fmt.Scanf("%d",&line)
// 生成左上直角三角形
for i := 0;i < line;i++{
for j:=0;j < (line - i);j++{
fmt.Printf("*")
}
fmt.Println()
}
}
输出结果:
编程打印出所有的“水仙花数”。所谓水仙花数,是指一个三位数,其各位数字的立方之和等于该数
package main
import "fmt"
func main(){
var a,b,c int
for num := 100;num < 1000;num++{
a = num / 100
b = (num - 100 * a) / 10
c = num % 10
if (a * a * a + b * b * b + c * c * c) == num{
fmt.Println(num)
}
}
}
输出结果:
第四章
斐波那契数列是由0和1开始,之后的斐波那契数列系数就由之前的两数相加。在数学上定义为F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2),下面请使用闭包实现斐波那契数列,并输出前10个数
package main
import "fmt"
func fib() func() int {
var f0 int = 0
var f1 int = 1
return func() int{
tmp := f0
f0 = f1
f1 = f0 + tmp
return tmp
}
}
func main(){
myfib := fib()
for i := 0;i < 10;i++{
fmt.Println(myfib())
}
}
输出结果:
递归实现n!
package main
import "fmt"
func factorial(n int) int {
if n == 0{
return 1
}
return n * factorial(n - 1)
}
func main(){
var num int
fmt.Scanf("%d",&num)
fmt.Printf("%d\n",factorial(num))
}