首页 > 其他 > 详细

自己写的代码会写了,还是太渣,复杂度什么的直接报表

时间:2017-09-12 22:37:58      阅读:301      评论:0      收藏:0      [点我收藏+]

技术分享

原题目是这样子的,本人按照一贯的作风想得很简单

#include<iostream>
using namespace std;
void H(int n)
{
    while (n > 1)
    {
        if (n % 2 == 0) //这一步把取余和除法弄混淆。
        {
            cout << n << " ";
            n = n / 2;
        }
        else
        {
            cout << n << " ";
            n = 3 * n + 1;
        }
    }
    if (n == 1)
        cout << n << " ";
}
int main2()
{
    H(42);
    return 0;
}

可是人家直接用了一个三目运算符直接取代if else 了,简直妙不可言

#include<iostream>
using namespace std;

int hailstone(int n)
{
    int length = 1;
    while(n>1)
    {
        
        (n % 2) ? n = 3 * n + 1 : n = n/ 2 ;
        length++;
    }
    return length;

}
int main()
{
    cout << hailstone(423232)<<endl;
    system("pause");
    return 0;
}

但是这两个的复杂度是一模一样的  震惊,就算是给自己代码简洁的一种方法吧

 

自己写的代码会写了,还是太渣,复杂度什么的直接报表

原文:http://www.cnblogs.com/xiaochige/p/7512417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!