首页 > 其他 > 详细

每日一题:华为初级题库——最大公约数

时间:2014-04-20 14:25:35      阅读:473      评论:0      收藏:0      [点我收藏+]

  <题目要求>

    输入两个整数,输出其的最大公约数。

  思路:找寻1-两个整数的最小数之间,能同时被两个整数整除的数。其即为最大公约数。对于负数,先将其转为正数,再去求。

  易错点分析:(1)忽略负数的讨论;(2)找寻1-两个整数的最小数之间的数。

bubuko.com,布布扣
#include <iostream>

using namespace std;
int fabs(int x)
{
    if(x<0)
        x=-x;
    return x;
}
int main()
{
    int a,b;
    cin>>a>>b;
    a=fabs(a);
    b=fabs(b);
    int min=a>b?b:a;
    int max=0;
    for(int i=1;i<=min;i++)
    {
        if(a%i==0&&b%i==0)
        {
            if(max<i)
                max=i;
        }
    }
    cout << max<< endl;
    return 0;
}
bubuko.com,布布扣

 

每日一题:华为初级题库——最大公约数,布布扣,bubuko.com

每日一题:华为初级题库——最大公约数

原文:http://www.cnblogs.com/Sophie-nature/p/3676167.html

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