摘要
题目链接 |
难度等级 |
完成状态 |
完成分数 |
最后编辑时间 |
失误原因(初次提交分数)
|
3n+1问题
|
★☆☆☆☆
|
答案正确
|
100
|
2014-10-11 12:26:43
|
输出格式(0)
|
题意
给出递推式,求求解步数。
题解
简单递归。
根据题目的叙述,int范围内肯定是没有无解情况的(要不然数学家还会找不到反例?),所以不必特判无解情况(输出-1)。
代码
3038.cpp代码已折叠
展开折叠内容
|
- #include<iostream>
- const int f(const int &n,const int &step)
- {
- if(n==1)
- return step;
- return (n%2)?f(3*n+1,step+1):f(n>>1,step+1);
- }
- int main()
- {
- int n,x;
- std::cin>>n;
- while(n--)
- {
- std::cin>>x;
- std::cout<<f(x,0)<<std::endl;
- }
- return 0;
- }
|