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

MyMSDN

MyMSDN記錄開發新知道

最大公約數問題

image

image

image

image

image 

image

image

image

image

以上內容摘自《編程之美》P150-154。

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

Math.h

#pragma once

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

public :
    //編程之美P150-154

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

    //求最大公約數,歐幾里德——輾轉相除法(變相將除法變成了減法)
    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順序不能錯;
    return y ? Gcd1(y, x % y) : x;
}

int Math::Gcd2(int x, int y)
{
    //與Gcd1相同的方式,但由于x%y計算速度較x-y要慢,但效果相同,所以換用x - y
    // 但用減法和除法不同的是,比如和,%20=10,-20=70,也就是-4×=10
    // 也就是說迭代次數較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;
}

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

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>
            av72成人在线| 亚洲女人天堂av| 免费观看久久久4p| 在线看无码的免费网站| 久久久久九九视频| 久久人人97超碰精品888| 精品1区2区3区4区| 国产午夜精品在线观看| 欧美一区二区性| 欧美一区精品| 亚洲国产婷婷| 午夜电影亚洲| 久久精品成人欧美大片古装| 亚洲高清在线视频| 亚洲三级免费| 欧美日韩精品久久久| 性欧美18~19sex高清播放| 欧美一站二站| 亚洲免费观看在线视频| 亚洲综合激情| 91久久国产综合久久| 在线视频日韩| 尤妮丝一区二区裸体视频| 久久国产精品亚洲77777| 久热精品在线视频| 亚洲一区二区三区四区五区午夜| 性欧美超级视频| 亚洲欧洲日本国产| 亚洲一区中文字幕在线观看| 亚洲二区三区四区| 亚洲视频在线观看免费| 亚洲大胆视频| 亚洲欧美日韩一区在线| 亚洲精品老司机| 欧美一级欧美一级在线播放| 亚洲另类春色国产| 欧美在线网址| 亚洲永久在线观看| 欧美不卡视频| 久久久97精品| 国产精品乱码| 亚洲美女毛片| 亚洲第一福利社区| 性色av香蕉一区二区| 亚洲天堂成人| 欧美激情第8页| 美女免费视频一区| 国产一区二区三区av电影| aa级大片欧美三级| 99热精品在线| 欧美成人情趣视频| 蜜臀久久99精品久久久画质超高清| 欧美午夜精品久久久久久超碰| 欧美黑人国产人伦爽爽爽| 国产亚洲精品v| 亚洲欧美在线免费| 亚洲欧美综合| 国产精品免费一区二区三区在线观看| 亚洲激情网站| 99国产精品久久久久老师| 免费成人小视频| 欧美高清在线一区| 亚洲第一在线综合网站| 久久久久综合网| 蜜桃av久久久亚洲精品| 狠狠色狠狠色综合日日小说| 欧美亚洲在线视频| 久久精品在线| 伊甸园精品99久久久久久| 欧美一区二区三区免费观看视频| 久久av二区| 久久久久久夜精品精品免费| 国产午夜精品一区理论片飘花 | 永久域名在线精品| 久久久久久一区二区三区| 久久天天躁夜夜躁狠狠躁2022| 国产视频久久网| 欧美在线在线| 欧美成人首页| 亚洲最黄网站| 国产精品成人一区二区艾草| 亚洲欧美激情四射在线日 | 久久狠狠亚洲综合| 国产综合久久久久久鬼色| 欧美综合二区| 欧美风情在线| 中文精品视频| 国产欧美一区二区精品仙草咪 | 欧美韩日一区| 宅男精品视频| 国产日韩欧美在线视频观看| 久久久爽爽爽美女图片| 欧美护士18xxxxhd| 亚洲午夜免费视频| 国产亚洲人成a一在线v站| 老牛嫩草一区二区三区日本| 亚洲美女黄色片| 久久精品123| 亚洲欧洲在线视频| 国产精品红桃| 免费的成人av| 亚洲欧美日韩在线综合| 欧美成人情趣视频| 亚洲欧美三级伦理| 亚洲国产成人在线播放| 欧美午夜不卡| 免费日韩av| 销魂美女一区二区三区视频在线| 欧美福利一区二区三区| 午夜亚洲一区| 亚洲美女视频在线观看| 国产亚洲精品aa午夜观看| 欧美经典一区二区| 久久精品女人| 亚洲免费在线观看视频| 亚洲国产合集| 久久一日本道色综合久久| 亚洲四色影视在线观看| 亚洲国产一区二区精品专区| 国产精品一区二区三区免费观看| 亚洲精一区二区三区| 久久久久一区二区| 亚洲视频综合在线| 亚洲美女av黄| 亚洲第一区在线| 国模私拍一区二区三区| 国产精品久久久久久久9999 | 亚洲欧美成人综合| 亚洲精品一区二区三区福利| 免费看的黄色欧美网站| 久久国产精品久久w女人spa| 亚洲影音先锋| 亚洲专区免费| 亚洲在线播放| 中国成人亚色综合网站| 亚洲精品之草原avav久久| 影音先锋亚洲电影| 狠狠久久亚洲欧美专区| 国产午夜精品一区二区三区欧美| 国产精品久久久久久福利一牛影视| 欧美精品高清视频| 欧美激情二区三区| 欧美成人免费全部| 欧美激情精品久久久久久久变态| 久久综合九色九九| 麻豆精品视频在线| 欧美凹凸一区二区三区视频| 久久综合色播五月| 美乳少妇欧美精品| 欧美va天堂va视频va在线| 牛人盗摄一区二区三区视频| 美女久久网站| 欧美噜噜久久久xxx| 欧美日韩色婷婷| 国产精品sm| 国产午夜精品一区二区三区视频| 国产主播在线一区| 在线观看亚洲a| 亚洲精品乱码视频| 亚洲无线视频| 久久久久国色av免费看影院| 久久香蕉国产线看观看网| 免费观看成人| 亚洲精品欧美| 亚洲综合精品四区| 久久久久久久久久久久久9999| 女人天堂亚洲aⅴ在线观看| 欧美精品一区二区三区很污很色的 | 欧美专区第一页| 噜噜噜在线观看免费视频日韩| 欧美黑人一区二区三区| 国产精品成人va在线观看| 国产婷婷色一区二区三区| 亚洲第一精品久久忘忧草社区| 亚洲人成在线观看| 午夜国产欧美理论在线播放| 巨乳诱惑日韩免费av| 亚洲人人精品| 欧美一区视频| 欧美成在线视频| 国产毛片一区二区| 亚洲欧洲日产国产网站| 亚洲一区二区av电影| 美女日韩欧美| 亚洲一区在线看| 欧美福利一区二区| 国产亚洲人成a一在线v站| 亚洲老板91色精品久久| 欧美一区二区啪啪| 91久久午夜| 久久激情五月激情| 国产精品极品美女粉嫩高清在线 | 亚洲天堂成人在线视频| 久久精品网址| 一本色道**综合亚洲精品蜜桃冫| 久久久亚洲国产天美传媒修理工| 欧美亚洲成人网| 日韩图片一区| 欧美福利一区二区三区| 午夜精品一区二区三区在线播放|