http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=110101&format=html

UVA 100_The 3n+1 problem

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=29&page=show_problem&problem=36

题目大意:

从整数 n 开始,如果 n 是偶数,把它除以 2;如果 n 是奇数,把它乘 3 加  1。

用新得到的值重复上述步骤,直到 n = 1 时停止。

例如,n = 22 时该算法生成的序列是:     22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1

对于给定的 n,该序列的元素(包括 1)个数被称为 n 的循环节长度。

在上述例子中,22 的循环节长度为 16。输入两个数 i 和 j,

你的任务是计算 i 到 j(包含 i 和 j)之间的整数中,循环节长度的最大 值。

样例输入:

1 10
100 200
201 210
900 1000
样例输出:
1 10 20
100 200 125
201 210 89
900 1000 174
可以用暴力法,对每次输入的数值进行计算,求出最大值
#include<cstdio>#include<iostream>using namespace std;

int fun(int n){int sum=1;while(n!=1)    {if(n&1)            n=n*3+1;else            n>>=1;        sum++;    }return sum;}

int main(){int a,b,max,i,sum,t,x,y;while(scanf("%d%d",&a,&b)!=EOF)    {        x=a;        y=b;if(a>b)        {            t=a;            a=b;            b=t;        }        max=-1;for(i=a;i<=b;i++)        {            sum=fun(i);if(sum>max)                max=sum;        }        printf("%d %d %d\n",x,y,max);    }return 0;}


记录已计算的值,如果已经计算过,则直接读取

//因为计算过程中所得的数会超出int的范围,所以要用__int64或者long long型

#include<cstdio>#include<iostream>using namespace std;

#define N 1000000

long long num[N];

long long fun(long long n){if(n==1)return 1;if(n&1)        n=n*3+1;else        n>>=1;if(n<N)        //如果已经计算过,则不必再计算一次了,读取即可    {if(!num[n])        {            num[n]=fun(n);        }return 1+num[n];    }return 1+fun(n);}

int main(){long long a,b,t,x,y,max,temp;while(scanf("%lld%lld",&a,&b)!=EOF)    {        x=a;        y=b;if(x>y)        {            t=x;            x=y;            y=t;        }        max=-1;for(t=x;t<=y;t++)        {            temp=fun(t);if(max<temp)                max=temp;        }        printf("%lld %lld %lld\n",a,b,max);    }return 0;}

转载于:https://www.cnblogs.com/pcoda/archive/2012/02/28/2371698.html

110101_The 3n+1 problem相关推荐

  1. Poj1207 The 3n + 1 problem(水题(数据)+陷阱)

    一.Description Problems in Computer Science are often classified as belonging to a certain class of p ...

  2. POJ 1207 The 3n + 1 problem

    题目链接:http://poj.org/problem?id=1207 题目大意:给你一个数x,规定一个函数F(x),如果x为1则F(x)==1,否则如果x是偶数,F(x)==F(x/2),x为奇数F ...

  3. POJ1207-The 3n + 1 problem

    http://poj.org/problem?id=1207 注意输入两个数的大小,水... #include <stdio.h> int main(void) {int a,b,m,co ...

  4. The 3n + 1 problem UVA - 100

    [问题描述] 考虑如下的序列生成算法:从整数 n 开始,如果 n 是偶数,把它除以 2:如果 n 是奇数,把它乘 3 加1.用新得到的值重复上述步骤,直到 n = 1 时停止.例如,n = 22 时该 ...

  5. 问题 L: The 3n + 1 problem

    题目描述 计算机科学中的问题往往被归纳为某一类问题(如NP问题,无法解决问题,递归等).在这道问题中你将分析一种算法,它对所有可能的输入结果是未知的. 考虑以下算法: 输入n 输出n 如果n=1然后停 ...

  6. PC110101:The 3n+1 problem

    第一道题居然就卡了这么久惭愧惭愧. 过程中出现这么几个问题. 1.关于最终和的数据类型要选择long. 2.循环中途max要初始化为0: 贴出代码. #include<stdio.h>in ...

  7. PC/UVa 题号: 110101/100 3n+1 Problem

    不解释了,暴力,不过需要注意的是 i有可能大于j #include <stdio.h> #include <string.h> #define maxnum 1000001 l ...

  8. PC110101(3n+1问题)(3n+1 Problem)

    单纯模拟,用一个数组记录下"沿途"的值,避免重复运算. 注意: 1. 中间计算过程会超过int或long型数据所能表示的范围,故需要选择long long型整数. 2. 输入时可能 ...

  9. 【HDOJ】1032 The 3n + 1 problem_天涯浪子_新浪博客

    [题目] http://acm.hdu.edu.cn/showproblem.php?pid=1032 [报告] 直接暴力题.不过最后还是用了记忆化搜索.总感觉直接暴力会TLE.网上有大神用线段树做的 ...

最新文章

  1. R语言绘制堆叠条形图
  2. 程序物语(四):苹果是如何落到牛顿头上的?
  3. python中的set类型
  4. KDT#94 为DW/BI系统建立定制工具
  5. 2019阿里云开年Hi购季云通信分会场全攻略!
  6. android 集成x5内核时 本地没有,腾讯浏览服务-接入文档
  7. 【Java】计算一组同学一门课程的平均成绩、最高成绩和最低成绩
  8. Android大图片裁剪解决方案
  9. 一周第二次课(3月20日)1.6/1.7 配置IP 1.8 网络问题排查
  10. 2021年最后一个月
  11. C# 获取当前路径或父路径
  12. 【C++】 ArcFace Demo2.0版
  13. 呼和浩特市啥时计算机考试,2021上半年内蒙古自治区呼和浩特市全国计算机等级考试时间...
  14. 软件测试常见的用例设计方法
  15. java blog 引擎_推荐10个Java开源CMS系统
  16. 计算机的计算百分比的函数是哪个好,excel用函数计算百分比计算的方法
  17. com组件 的劫持_IE首页被劫持跳转问题的解决方案
  18. Orz是什么意思……
  19. 图像处理职位面试题汇总(2)
  20. 国标GB/T28181协议EasyGBS历史录像回放有多路视频流时,如何单独对某路流进行控制操作?

热门文章

  1. vue+iview 自定义实现穿梭框
  2. 计算机辅助设计设计师理论知识试卷,《计算机辅助设计》考试试卷A
  3. The Cross-evaluation of Machine Learning-based Network Intrusion Detection Systems
  4. 算法-----劳斯-赫尔维茨(Routh-Hurwitz)稳定判据(转)
  5. Python 入门指南 [闲聊]
  6. 即构科技冼牛:微信小程序的视频直播实践
  7. 新手股民炒股第一次怎么玩?
  8. 不做孔乙己也不做骆驼祥子
  9. 【ArcGIS微课1000例】0068:ArcGIS加载world imagery高清卫星影像教程
  10. 【研二下 | 知识学习 | Ing】