最大公约数&&最小公倍数C语言

来源:互联网 发布:java图形输出的编程题 编辑:程序博客网 时间:2024/05/17 19:16

两个数的最大公约数:

//最大公约数
#include<stdio.h>
int main()
{
    //void ZDGYS(int x,int y);
    int x,y,z,max,j,i,n,t;
    int a[10000];
    scanf("%d%d",&x,&y);
    n=0;
    j=0;
    if(x>y) z=x;
    else z=y;
    for(i=1; i<z; i++)
    {
        if((x%i==0)&&(y%i==0))
        {
            n++;
            a[j++]=i;
        }
    }
    max=0;
    for(j=0; j<n; j++)
    {
        if(max<a[j])
        {
            t=max;
            max=a[j];
            a[j]=t;
        }
        //printf("%d",max);
    }
    // return max;
    printf("%d",max);
}

反思:这个代码感觉要好大内存(今天刚好看到函数里静态变量,动态变量这章觉得自己那个数组好浪费)

然后非常不成熟,我的思路是求两个数所有公因子存到数组里然后找到最大的那个因子,假如这些数的公因子超过了10000怎么办,那么这个代码就是错的,还有代码好长,宝宝看着烦,本来想写成函数的但是写半天越写越错,,,不开心。宝宝要哭去,,,,,,,,,,,,但是起码是自己思考的代码,还有最重要一点小学数学一定要学好不然连最大公约数是什么都不知道,就像本宝宝,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

get:自己耐心看完了函数这一章(这个算收获么,,,,,,,,,,,)

 自己写了个代码(虽然超级嫌弃)……………………………………………………………………没有了

不足:我想快点看完c程序设计,,,,,,不要紧,函数总会写成功的;

void()与可以传参的函数有点傻傻分不清,明天再做题应该就好好点。

两个函数写完啦!函数版本如下

//最大公约数&&最大公倍数
#include<stdio.h>
int ZDGYS(int x,int y)
{
    int z,max,j,i,n,t;
    int a[10000];
    //scanf("%d%d",&x,&y);
    n=0;
    j=0;
    if(x>y) z=x;
    else z=y;
    for(i=1; i<z; i++)
    {
        if((x%i==0)&&(y%i==0))
        {
            n++;
            a[j++]=i;
        }
    }
    max=0;
    for(j=0; j<n; j++)
    {
        if(max<a[j])
        {
            t=max;
            max=a[j];
            a[j]=t;
        }
        //printf("%d",max);
    }
    return max;
    //printf("%d",x*y/max);
}
int ZXGBS(int x,int y)
{
    int c,e;
    c=ZDGYS(x,y);
    e=x*y/c;


    return e;
}
int main()
{
    int a,b,k,h;
    scanf("%d%d",&a,&b);
    k=ZDGYS(a,b);
    h=ZXGBS(a,b);
    printf("%d %d",k,h);
}










————————————————————————————————————————————————————提示:那个最大公约数代码宝宝我不负责对错,我的数字验证都是对的,,,,,,,但是还是不放心;








0 0
原创粉丝点击