poj1207~递归和打表
来源:互联网 发布:淘宝天猫超市有客服吗 编辑:程序博客网 时间:2024/05/16 07:21
题意比较难懂
一个数字x,如果是奇数则x=x*3+1,否则x=x/2.,直到x=1,这个过程所经过的长度叫做“循环数”
题目给你2个数字i和j,求i和j区间中最大的循环数。
i可能大于j!
我的思路就是递归加打表,不过打表不能全打,因为范围可能会超大,比如(9999*3+1)=29998有点大啊,为了防止超出我的预想打表的时候定个范围
#include<iostream>#include<string> #include<queue>#define M 10005using namespace std;int vis[M],num[M];int dfs(int x){int y,ans;if(x<M&&vis[x]==1) return num[x]; //x<M防止数组越界,超出的就不打表了,直接算if(x==1) return 1; if(x%2==1)y=x*3+1;else y=x/2;ans=1+dfs(y);if(x<M) //小于M就打表{num[x]=ans;vis[x]=1;}return ans;}int main(){int i,a,b,max,t;memset(vis,0,sizeof(vis));num[1]=1;while(scanf("%d%d",&a,&b)!=EOF){max=0;printf("%d %d ",a,b);if(a>b) //陷阱!a不一定小于b{t=a;a=b;b=t;}for(i=a;i<=b;i++){dfs(i);if(num[i]>max)max=num[i];}printf("%d\n",max);}}
0 0
- poj1207~递归和打表
- POJ1207
- poj1207
- poj1207
- POJ1207
- POJ1207
- poj1207
- poj1207
- poj1207
- poj1207
- poj1207
- poj1207
- 递归的函数(打表)
- POJ1207 水题
- 汉诺塔V 1995 (数学+打表+递归)
- poj 2533 N皇后问题 -- 递归回溯(打表)
- POJ:1579 Function Run Fun(递归转换+打表)
- 递归和非递归逆转链表
- Objective-C Copy语法
- vs2010与matlab2009a混合编程
- 十二平均律
- headfirst servlet&jsp笔记
- 【机房收费系统——组合查询】
- poj1207~递归和打表
- 工作BUG
- Perl函数pack/unpack解释
- 设计模式:委托模式Delegation Pattern在MVC中的应用
- Linux设备驱动——LCD驱动程序
- 设计模式之观察者模式(c++实现)
- 笔试题??智商题??
- cocos2dx 3.1.1 Lua常用控件
- 信号量函数(semget、semop、semctl)