Golang练习题(自己认为比较不错的)

Q1:求一段代码的运行时长

func test03() {
	str := " "
	
	for i := 0; i < 100000; i++{
		str += "hello" + strconv.Itoa(i)
	}
	
}

func main() {
	var start int64 = time.Now().UnixNano()
	test03()
	var end int64 = time.Now().UnixNano()
	fmt.Println(end - start)
}

Q2:说明:编写一个函数 fbn(n int) ,要求完成

  1. 可以接收一个 n int
  2. 能够将斐波那契的数列放到切片中
  3. 提示, 斐波那契的数列形式:
    arr[0] = 1; arr[1] = 1; arr[2]=2; arr[3] = 3; arr[4]=5; arr[5]=8
func fbn(n int) ([]uint64) {
	fbnq := make([]uint64, n)
	fbnq[0] =11
	fbnq[1] = 1

	for i := 2; i<n; i++{
		fbnq[i] = fbnq[i-1] + fbnq[i-2]
	}

	return fbnq
}

func main() {
	fbnq := fbn(20)
	fmt.Println(fbnq)
}

Q3

1)使用 map[string]map[string]sting map 类型
2) key: 表示用户名,是唯一的,不可以重复
3) 如果某个用户名存在,就将其密码修改"888888",如果不存在就增加这个用户信息,(包括昵称
nickname 和 密码 pwd)。
4) 编写一个函数 modifyUser(users map[string]map[string]sting, name string) 完成上述功能

package main

import 
	(
		"fmt"
		//"time"
		//"math/rand"
)


func modifyUser(users map[string]map[string]string, name string){
	if users[name] != nil{
		users[name]["pwd"] = "8888888"
	} else {
		users[name] = make(map[string]string,2)
		users[name]["pwd"] = "888888"
		users[name]["nickname"] = "nicheng" +name
	}
}



func main(){
	users := make(map[string]map[string]string,10)
	users["smith"] = make(map[string]string,2)
	users["smith"]["pwd"] ="999999"
	users["smith"]["nickname"] = "浩波"

	modifyUser(users,"tom")
	modifyUser(users,"mary")
	modifyUser(users,"smith")

	fmt.Println(users)
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩波的笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值