求解!!!

ChampaignLiu · · 820 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

一个环上有10个点,编号为0-9,从0点出发,每步可以顺时针到下一个点,也可以逆时针到上一个点,求:经过n步又回到0点有多少种不同的走法? 举例:n=1, 0->1或者0->9,回不到0点,共0种走法;n=2, 0->1->0, 0->1->2, 0->9->0, 0->9->8, 有2种走法回到0点 ```go package main import ( "fmt" "os" "strconv" ) var result = 0 func main() { var buffer [512]byte n, err := os.Stdin.Read(buffer[:]) if err != nil { fmt.Println(err) return } testNum, err := strconv.Atoi(string(buffer[:n-1])) if err != nil { fmt.Println(err) return } if testNum%2 != 0 { fmt.Println(testNum, " is not Oushu") return } step(testNum, 0) fmt.Println(result) } func step(num int, record int) { num-- if num < 0 { return } else { record++ if num == 0 { if (record+num*10)%10 == 0 { result++ } } step(num, record) record -= 2 if num == 0 { if (record+num*10)%10 == 0 { result++ } } step(num, record) } } ``` 上面我用迭代写的,但是算100步都卡在那里,等半天算不出,复杂度太高了,大神们给个最优解,面试老师说用动态规划,网上查了但没理解,求助

有疑问加站长微信联系(非本文作者)

第 1 条附言  · 
在环上任意走n步回到起点,有多少种走法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

820 次点击  ∙  1 赞  
加入收藏 微博
5 回复  |  直到 2020-11-29 03:15:55
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传