《数据结构编程实验》 2.4.2The 3n + 1 problem

来源:互联网 发布:js 滑动特效 编辑:程序博客网 时间:2024/05/16 00:27

题目大意:

  有一种运算,对于数字n,若n为奇数,则n*3+1,为偶数,则n/2;对于任意数字,均可经过有限次运算最终变成数字1。求在给出的数字范围内,运算次数的最大值。


题目地址:

  POJ  1207 UVA  100


题解:

  纯模拟,水题一道。不过题意有个小陷阱。


#include <iostream>#include <cstdio>using namespace std;int main(){    int i,j,k,l,m,n,t;    while (scanf("%d%d",&m,&n)!=EOF)    {        printf("%d %d ",m,n);        if (m>n) {t=m;m=n;n=t;}        k=0;        for (i=m;i<=n;i++)        {            j=i;            l=1;            while (j!=1)            {                if (j%2==1) j=j*3+1;                else j=j/2;                l++;            }            if (l>k) k=l;        }        printf("%d\n",k);    }    return 0;}



0 0
原创粉丝点击