zoukankan      html  css  js  c++  java
  • The 3n+1 problem

    在网上看到的一个比较好的The 3n+1 problem,通过中间变量来保存结果集,较少了运算数量
    1
    #include <iostream> 2 3 #include <vector> 4 5 6 7 #define SIZE 100000 8 9 10 11 using namespace std; 12 13 14 15 int Count(vector<int> &viRec, int iNum) 16 17 { 18 19 int iTemp=iNum, iResult=0; 20 21 22 23 if (viRec[iTemp]!=0) return viRec[iTemp]; 24 25 while (iTemp!=1) 26 27 { 28 29 if (iTemp<=SIZE && viRec[iTemp]!=0) 30 31 { 32 33 viRec[iNum]=iResult+viRec[iTemp]; 34 35 return viRec[iNum]; 36 37 } 38 39 if ((iTemp&1)==0) iTemp=iTemp>>1; 40 41 else iTemp=iTemp*3+1; 42 43 iResult++; 44 45 } 46 47 viRec[iNum]=iResult; 48 49 return iResult; 50 51 } 52 53 54 55 int main() 56 57 { 58 59 vector<int> viRec(SIZE+1, 0); 60 61 int iBegin, iEnd; 62 63 64 65 while (cin>>iBegin>>iEnd) 66 67 { 68 69 int iMax=0; 70 71 72 73 if (iBegin>iEnd) swap(iBegin, iEnd); 74 75 for (int i=iBegin; i<=iEnd; i++) 76 77 { 78 79 int iTemp=Count(viRec, i); 80 81 82 83 if (iTemp>iMax) iMax=iTemp; 84 85 } 86 87 cout<<iMax<<endl; 88 89 } 90 91 return 0; 92 93 }
  • 相关阅读:
    事件处理
    模板语法
    计算属性和侦听器
    Class 与 Style绑定
    Springboot使用redis
    修改docker-toolbox/boot2docker容器镜像
    docker容器如何安装vim
    Maven+Docker,发布到Registry
    Maven + Docker
    Jenkins-SVN + Maven + Docker
  • 原文地址:https://www.cnblogs.com/UnGeek/p/2532735.html
Copyright © 2011-2022 走看看