标题:求一问题最大公约数和最小公倍数的定律
只看楼主
fobtgmi
Rank: 2
等 级:论坛游民
帖 子:28
专家分:34
注 册:2010-11-19
结帖率:100%
已结贴  问题点数:10 回复次数:9 
求一问题最大公约数和最小公倍数的定律
求最大公约数和最小公倍数的定律
搜索更多相关主题的帖子: 公倍数 公约数 
2010-12-23 09:06
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
得分:5 
我给你个代码你看看运行下 研究下:
程序代码:
#include<stdio.h>
void main()
{
    int gys(int,int);
    int gbs(int,int);
    int num1,num2,Gys,Gbs;          //Gys是最大公约数,Gbs是最小公倍数。
    printf("请你输入两个数:");
    scanf("%d,%d",&num1,&num2);
    Gys=gys(num1,num2);
    Gbs=gbs(num1,num2);
    if(Gys==1)
        printf("没有最大公约数\n");
    else
        printf("两个数的最大公约数是%d\n",Gys);
    printf("两个数的最小公倍数是%d\n",Gbs);
}
int gbs(int num1,int num2)//求两个数的最小公倍数。
{   int gys(int,int);
int Gbs,ys;
ys=gys(num1,num2);
Gbs=num1*num2/ys;
return(Gbs);
}

int gys(int num1,int num2)//求两个数的最大公约数。
{
    int t,ys=1;//ys是余数,t是中间变量。
    int i=2;
    if(num1<num2)
    {
        t=num1;
        num1=num2;
        num2=t;
    }
    if(num1%num2==0)return num2;
    else
    {
        while(1)
        {
            if((num1%i==0) && (num2%i == 0))
            {
                ys*=i;
                num1=num1/i;
                num2=num2/i;
            }
            if(i==num2)
                return ys;
            i++;
        }
    }
}


结果:

Go Go Go
2010-12-23 10:47
fobtgmi
Rank: 2
等 级:论坛游民
帖 子:28
专家分:34
注 册:2010-11-19
得分:0 
int gys(int,int);
int gbs(int,int);
什么意思
2010-12-23 10:59
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
得分:0 
最大公约数通俗的讲就是 都能被两个数整除的最大数,例如 14,8;他们的最大公约数就是2;
最小公倍数呢就是都能除于这两个数的最小数,例如 14,8,;他们的最小公倍数就是 56;

Go Go Go
2010-12-23 11:00
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
得分:0 
以下是引用fobtgmi在2010-12-23 10:59:35的发言:

int gys(int,int);
int gbs(int,int);
什么意思
这两个是个函数;就是在主函数里要调用这两个函数;

Go Go Go
2010-12-23 11:02
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
得分:0 
程序从主函数开始执行 预处理过后,执行到int gys(int,int);的时候,就相当于一个门,主函数在这个函数暂停进行现场保护,然后进去这个门里面,寻找下面的这个函数的定义,就是下面的 int gus(int ,int ){}执行这个函数体里面的语句块,执行完后自动在回到主函数的现场保护的地方,在继续执行主函数底下的语句;

Go Go Go
2010-12-23 11:06
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
得分:5 
你们用我啥编辑器啊 我的输出不了汉字啊 ??
2010-12-23 13:30
fobtgmi
Rank: 2
等 级:论坛游民
帖 子:28
专家分:34
注 册:2010-11-19
得分:0 
你给我邮箱我发给你
2010-12-23 13:50
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
得分:0 
二楼的有错啊,当两个数多次能被2除时,你的程序不会正确执行
2011-05-17 10:08
维维安
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-26
得分:0 
这个程序不错,能不能帮忙写个程序:打印任意大小的菱形和燕尾形
谢谢
2011-05-29 15:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-329666-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067037 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved