摘要: 题意:给出一个不多于64个盘子的汉诺塔的摆法,都已经符合小盘在上大盘在下的规则,需要做的是判断是否为正确摆法。Analyse:第一眼看下去就觉得是用递归做的,可就是理不顺思路,停停滞滞放了很久,今天终于狠心要搞定它。定义一个递归函数hanoi(n,a1,a2,a3),表示将n个盘子从a1柱移到a3柱。一、若n在a1,则n-1只能在a1或a2。分两种情况:1、n-1在a1,即要做的是将n-2个盘从a1移到a3,返回hanoi(n-2,a1,a2,a3);2、n-1在a2,即要做的是将n-2个盘从a3移到a2,返回hanoi(n-2,a3,a1,a2);不是这两种情况就返回0.二、若n在a3,则n 阅读全文
posted @ 2012-06-23 23:31 Hogg 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题意:小于四位的斐波那契数fib(n)直接输出,大于四位的斐波那契数只输出最左边四位,n<100000000。Analyse:跟1060相同原理。10^x=fib(n)(用通项公式),求出x。令y=3.·#¥%……—*(小数部分是x的小数部分),再输出10^yView Code 1 #include<stdio.h> 2 #include<math.h> 3 #define C ((sqrt(5)+1)/2) 4 int fib(int n) 5 { 6 return (int)( (pow( (sqrt(5)+1)/2 , n ) - pow( (1 阅读全文
posted @ 2012-06-23 23:07 Hogg 阅读(262) 评论(0) 推荐(0) 编辑