hdu 1032 The 3n + 1 problem

Posted wz-archer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 1032 The 3n + 1 problem相关的知识,希望对你有一定的参考价值。

题意:有一个数字,如果是奇数那么*3+1,如果是偶数/2,知道这个数字变成1.问n到m之间需要操作步数最多的数字操作了几步

解:模拟

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <deque>
#include <cmath>
#include <map>
using namespace std;
typedef long long ll;
const double inf=1e20;
const int maxn=1e8+10;
const int mod=1e7;


ll n,m;

int main(){
    while(scanf("%lld%lld",&n,&m)!=EOF){
        ll nn=n;
        ll mm=m;
        if(n>m)swap(n,m);
        ll num=0;
        for(int i=n;i<=m;i++){
            ll ii=i;
            ll sum=0;
            while(ii!=1){
                if(ii%2==1)ii=ii*3+1;
                else ii=ii/2;
                sum++;
            }
            num=max(num,sum);
        }
        printf("%lld %lld %lld
",nn,mm,num+1);
    }
    return 0;
}

 

以上是关于hdu 1032 The 3n + 1 problem的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1032 [The 3n + 1 problem] 暴力模拟

(HDU/UVA)1032/100--The 3n + 1 problem(3n+1问题)

hdu 1032 The 3n + 1 problem

题解报告:hdu 1032 The 3n + 1 problem

HDU 1032.The 3n + 1 problem注意细节预计数据不强8月21

[问题]HDOJ1032 The 3n + 1 problem