前几天遇到一道有趣的题目 一座楼有10层,兔子可以跳跃的层数可以为1,2或者3,那么兔子到达10层有多少种跳法并列出各种情况。
2014-09-02 15:22
513 查看
#include <iostream> using namespace std; #define MaxSize 20 struct enode { int key; enode* next; }; struct vnode { int key; enode* first; }; struct AGraph { vnode adjlist[20]; int n,e; }; int visited[11]={0}; int count=0; void Ppath(AGraph* p,int u,int v,int d,int path[]) { int i,j; visited[u]=1; d++; path[d]=u; if(u==v) { for(i=0;i<=d;i++) cout<<path[i]<<" "; count++; cout<<endl; } enode*q=p->adjlist[u].first; while(q!=NULL) { if(visited[q->key]==0) Ppath(p,q->key,v,d,path); q=q->next; } visited[u]=0; } int main() { int i,j,path[20]; vnode* p; enode* q,*q1; AGraph* r=(AGraph*)malloc(sizeof(AGraph)); r->e=27;r->n=11; for(i=0;i<=10;i++) { r->adjlist[i].key=i; r->adjlist[i].first=NULL; j=i+1; while(j<=10 &&j<(i+4)) { enode* q=(enode*)malloc(sizeof(enode)); q->key=j; q->next=r->adjlist[i].first; r->adjlist[i].first=q; j++; } } Ppath(r,0,10,-1,path); cout<<"数目为"<<count<<endl; }
相关文章推荐
- 一座楼有10层,兔子可以跳跃的层数可以为1,2或者3,那么兔子到达10层有多少种跳法并列出各种情况。
- 题目:一条鱼每个月都可以生产10条小鱼,小鱼3个月后才可以生产,问如果一开始有1条鱼,那么1年内一共会有多少条鱼?
- 第六题:航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器,假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地,只考虑整数解,至多发射过程中可以承受多少程度的损耗?
- 练习1-21 编写程序entab,将空格串替换成最少数量的制表符和空格,但要保持单词之间的间隔不变。假设制表符终止位的位置与练习1-20的detab程序的情况相同。当使用一个制表符或者一个空格都可以到达下一个制表符终止位时,选用哪种替换字符比较好。
- 二、给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。
- 题目描述 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空
- 现有一个m * n的网格,从最左上角出发,每次只能向右或者向下移动一格,问有多少种不同的方法可以到达最右下角的格子
- mysql>命令行下可以使用的各种命令解析(使用help或者help contents查看更多信息)
- 一道有趣的题目,看看你的观点是分别开出拿些人?
- 一道有趣的C#考试题目
- 程序1:题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 一道有趣的循环题目
- 并查集的一道题目;发现可以用并查集就简单了;
- 一道有趣的C#考试题目
- poj 1236 Network of Schools 1)至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2)至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点
- hdu 3434 给你含有n个数的序列,每次你可以选一个子序列将上面所有的数字加1或者减1,目标是把所有数字变成相同的,问最少步数,和那个相同的数字有多少种可能
- 对“一道有趣的题目”的解答
- 一道有趣的C#考试题目
- 一道有趣的题目
- 一般情况的话 在西安或者上海北京的 c#程序员的薪金一月能拿多少