青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

MyMSDN

MyMSDN記錄開發(fā)新知道

最大公約數(shù)問題

image

image

image

image

image 

image

image

image

image

以上內(nèi)容摘自《編程之美》P150-154。

為了方便使用,下面是可拷貝的代碼:

Math.h

#pragma once

class Math
{
public:
    Math(void);
    ~Math(void);

public :
    //編程之美P150-154

    //求最大公約數(shù),歐幾里德——輾轉(zhuǎn)相除法
    static int Gcd1(int x, int y);

    //求最大公約數(shù),歐幾里德——輾轉(zhuǎn)相除法(變相將除法變成了減法)
    static int Gcd2(int x, int y);

    static int Gcd3(int x, int y);

    inline static bool IsEven(int x);

    inline static int Absolute(int x);
};

Math.cpp

#include "Math.h"

Math::Math(void)
{
}

Math::~Math(void)
{
}

int Math::Gcd1(int x, int y)
{
    //y, x%y順序不能錯(cuò);
    return y ? Gcd1(y, x % y) : x;
}

int Math::Gcd2(int x, int y)
{
    //與Gcd1相同的方式,但由于x%y計(jì)算速度較x-y要慢,但效果相同,所以換用x - y
    // 但用減法和除法不同的是,比如和,%20=10,-20=70,也就是-4×=10
    // 也就是說迭代次數(shù)較Gcd1而言通常是增加了。
    return y ? Gcd1(y, x - y) : x;
}

int Math::Gcd3(int x, int y)
{
    if(x < y)
        return Gcd3(y, x);
    if(y == 0)
        return x;
    else
    {
        if(IsEven(x))
        {
            if(IsEven(y))
                return (Gcd3(x >> 1, y >> 1) << 1);
            else
                return Gcd3(x >> 1, y);
        }
        else
        {
            if(IsEven(y))
                return Gcd3(x, y >> 1);
            else
                return Gcd3(y, x - y);
        }
    }
}

bool Math::IsEven(int x)
{
    return !(bool)x & 0x0001;
}

int Math::Absolute(int x)
{
    return x < 0 ? -x : x;
}

Main.cpp

#include <stdafx.h>
#include <iostream>
#include "Math.h"

using namespace std;
int _tmain(const int & arg)
{
    cout<<"Math::Gcd1(42,30) = "<<Math::Gcd1(42,30)<<endl;
    cout<<"Math::Gcd1(30,42) = "<<Math::Gcd1(30,42)<<endl;
    cout<<"Math::Gcd1(50,50) = "<<Math::Gcd1(50,50)<<endl;
    cout<<"Math::Gcd1(0,0) = "<<Math::Gcd1(0,0)<<endl;
    cout<<"Math::Gcd1(-42,-30) = "<<Math::Gcd1(-42,-30)<<endl;
    cout<<"Math::Gcd1(-42,30) = "<<Math::Gcd1(-42,30)<<endl;

    cout<<"------------------------------"<<endl;

    cout<<"Math::Gcd2(42,30) = "<<Math::Gcd2(42,30)<<endl;
    cout<<"Math::Gcd2(30,42) = "<<Math::Gcd2(30,42)<<endl;
    cout<<"Math::Gcd2(50,50) = "<<Math::Gcd2(50,50)<<endl;
    cout<<"Math::Gcd2(0,0) = "<<Math::Gcd2(0,0)<<endl;
    cout<<"Math::Gcd2(-42,-30) = "<<Math::Gcd2(-42,-30)<<endl;
    cout<<"Math::Gcd2(-42,30) = "<<Math::Gcd2(-42,30)<<endl;

    cout<<"------------------------------"<<endl;

    cout<<"Math::Gcd3(42,30) = "<<Math::Gcd3(42,30)<<endl;
    cout<<"Math::Gcd3(30,42) = "<<Math::Gcd3(30,42)<<endl;
    cout<<"Math::Gcd3(50,50) = "<<Math::Gcd3(50,50)<<endl;
    cout<<"Math::Gcd3(0,0) = "<<Math::Gcd3(0,0)<<endl;
    cout<<"Math::Gcd3(-42,-30) = "<<Math::Gcd3(-42,-30)<<endl;
    cout<<"Math::Gcd3(-42,30) = "<<Math::Gcd3(-42,30)<<endl;

    return 0;
}

不過有一點(diǎn)值得一提,就是所謂性能最好效率最高的Gcd3不支持負(fù)數(shù),也就是最后兩行測試代碼無法通過。但是限于對負(fù)數(shù)的最大公約數(shù)并沒有定義,也就是說即便上面的Gcd1和Gcd2好像算出了負(fù)數(shù),但它們的結(jié)果沒有意義。

posted on 2009-03-04 23:52 volnet 閱讀(1058) 評論(0)  編輯 收藏 引用 所屬分類: 知識庫(KnowledgeLibrary)

特殊功能
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品久久久久一区| 国产精品日日摸夜夜添夜夜av| 国产视频一区欧美| 欧美中文字幕第一页| 亚洲婷婷综合色高清在线 | 久久综合一区二区三区| 欧美一区二区三区久久精品| 国产一区二区三区四区三区四| 久久久最新网址| 久久久久国内| 亚洲毛片在线观看.| 亚洲伦伦在线| 国产午夜精品一区理论片飘花 | 亚洲三级免费观看| 亚洲精品国产品国语在线app| 欧美日韩国产限制| 午夜精品一区二区三区在线| 欧美一区二区三区久久精品| 在线精品一区| 中日韩视频在线观看| 国产欧美大片| 欧美成人激情视频| 欧美日韩在线亚洲一区蜜芽| 久久精品91| 欧美精品一区二区高清在线观看| 亚洲综合社区| 免费人成网站在线观看欧美高清| 中文欧美在线视频| 久久久夜色精品亚洲| 亚洲一区二区三区三| 久久国产精品久久久久久久久久| 99成人在线| 久久精品国产2020观看福利| 99热免费精品| 久久青青草综合| 亚洲欧美日韩爽爽影院| 欧美14一18处毛片| 久久久.com| 欧美午夜性色大片在线观看| 欧美xx69| 精品成人在线观看| 亚洲性感美女99在线| 亚洲精品无人区| 久久精品夜色噜噜亚洲a∨| 亚洲视频1区2区| 免费久久99精品国产自| 久久久91精品| 国产精品三级视频| 亚洲精品在线看| 亚洲激情电影中文字幕| 欧美亚洲一区在线| 亚洲专区在线| 欧美日韩精品欧美日韩精品 | 99视频一区二区| 久久夜色精品一区| 久久视频在线视频| 国产一区二区三区在线播放免费观看| 99精品99| 亚洲专区欧美专区| 欧美激情国产日韩| 欧美**人妖| 在线观看日韩av电影| 久久精品视频在线播放| 久久成人精品电影| 国产一区日韩一区| 欧美中文字幕精品| 久久精品亚洲一区二区三区浴池| 国产精品美女久久久浪潮软件| 免费高清在线视频一区·| 国产精品有限公司| 午夜精品影院| 久久久久综合| 精品动漫3d一区二区三区| 久久久久久有精品国产| 欧美成ee人免费视频| 亚洲第一色在线| 老司机午夜精品视频| 亚洲第一偷拍| 这里只有精品视频在线| 欧美日韩中文另类| 亚洲在线免费观看| 久久综合网络一区二区| 永久免费毛片在线播放不卡| 麻豆免费精品视频| 91久久视频| 性久久久久久久久久久久| 国产一区二区在线免费观看| 欧美综合激情网| 亚洲国产精品精华液2区45| 99精品久久免费看蜜臀剧情介绍| 欧美日韩在线精品| 亚洲欧美视频一区二区三区| 久久综合久久综合久久综合| 亚洲精品一区二区三区av| 欧美日韩中文字幕在线视频| 在线亚洲一区观看| 另类专区欧美制服同性| 亚洲精选91| 国产一区二区三区丝袜| 女女同性女同一区二区三区91| 一区二区久久| 欧美a级一区二区| 国产精品99久久久久久久女警 | 一色屋精品亚洲香蕉网站| 欧美成人午夜激情在线| 亚洲午夜免费视频| 欧美国产精品中文字幕| 一二三四社区欧美黄| 国产一区视频观看| 欧美日韩国产综合视频在线观看中文 | 久久国产精品久久久久久电车| 亚洲国产色一区| 久久色中文字幕| 中文欧美字幕免费| 在线观看成人小视频| 欧美天堂亚洲电影院在线观看| 久久精品日产第一区二区| 亚洲乱码国产乱码精品精天堂| 久久久999成人| 亚洲永久网站| 亚洲日本视频| 国产亚洲激情视频在线| 欧美激情一区二区三区不卡| 欧美一区二区三区电影在线观看| 日韩视频在线观看| 亚洲福利一区| 狂野欧美一区| 久久精品日产第一区二区| 一区二区欧美日韩| 亚洲国产专区| 韩日欧美一区二区三区| 国产精品日本| 欧美视频三区在线播放| 欧美精品电影| 免费不卡在线观看av| 久久久在线视频| 久久九九国产精品| 欧美在线看片| 久久国产欧美日韩精品| 午夜精品一区二区三区电影天堂| 妖精视频成人观看www| 亚洲欧洲综合另类| 亚洲第一精品福利| 欧美电影免费网站| 欧美大胆a视频| 亚洲成色精品| 亚洲黄色av一区| 亚洲精品日韩久久| 日韩网站在线| 亚洲天堂免费观看| 亚洲夜间福利| 欧美一级大片在线观看| 亚洲午夜一级| 午夜影院日韩| 久久久久久久国产| 久久综合久久综合久久| 欧美jizzhd精品欧美巨大免费| 免费看亚洲片| 欧美高清视频www夜色资源网| 欧美国产在线观看| 欧美午夜影院| 国产精品日韩在线| 国产人久久人人人人爽| 国内久久婷婷综合| 亚洲国产一区二区三区高清| 在线高清一区| 亚洲免费观看| 亚洲欧美日韩国产成人精品影院| 性欧美精品高清| 久久亚洲午夜电影| 亚洲国产一区二区a毛片| 日韩午夜在线电影| 亚洲欧美国产一区二区三区| 久久成人18免费网站| 欧美高清成人| 国产欧美视频在线观看| 亚洲大胆女人| 在线一区二区日韩| 欧美自拍偷拍| 亚洲国产精品va在看黑人| 夜夜狂射影院欧美极品| 欧美一区二区三区在线视频| 美日韩丰满少妇在线观看| 欧美日韩精品免费观看视频| 国内精品久久久久影院色 | 欧美视频在线免费| 一区二区三区无毛| 宅男66日本亚洲欧美视频| 久久黄色影院| 亚洲免费观看高清在线观看| 欧美有码在线观看视频| 欧美激情五月| 韩日欧美一区| 亚洲在线视频观看| 欧美高清视频一区| 亚洲欧美日韩成人高清在线一区| 欧美高清视频在线| 国产一区二区三区直播精品电影| 中文亚洲视频在线| 欧美国产专区|