加载中…
  
博文
标签:

杂谈

如题,本文是C++程序设计与应用开发(王继民,柴春来)版本教材第六章最后一道题的解析,虽然题目中集合类是用Set名称表示的,但是由于本人借鉴了网络上别人的答案,所以这里集合名称是intSet,但是本人将该集合扩大补充,补上了原来网络上没有的成员函数,现在的程序可以作为该C++教材习题的标准答案来用。

 

#pragma once 


 

 

class intSet

{

public:

     intSet(int capacity = 0);//构造函数,默认初始元素为

     //intSet();

     intSet(const intSet & set);//赋值(拷贝)构造函数

 

     ~intSet(void);//析构函数

   

      intSet & insert(int item);//添加元素

 

     bool isEqual(const intSet & set)const;//判断相等

 

     static intSet union2(intSet set1,intSet set2);//

标签:

杂谈

最大公约数:

如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。
这个有几种方法,下面是两种不错的方法:
(1)求差判定法.

  如果两个数相差不大,可以用大数减去小数,所得的差与小数的最大公约数就是原来两个数的最大公约数.例如:求78和60的最大公约数.78-60=18,18和60的最大公约数是6,所以78和60的最大公约数是6.

 
如果两个数相差较大,可以用大数减去小数的若干倍,一直减到差比小数小为止,差和小数的最大公约数就是原来两数的最大公约数.例如:求92和16的最大公约数.92-16=76,76-16=60,60-16=44,44-16=28,28-16=12,12和16的最大公约数是4,所以92和16的最大公约数就是4.

  (2)辗转相除法.

  当两个数都较大时,采用辗转相除法比较方便.其方法是:

  以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除刚才的除数;再用这新除法的

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有