鱼C论坛

 找回密码
 立即注册
查看: 809|回复: 5

[已解决]如何实现,在A函数中求出的值,在B函数中仍然可以使用

[复制链接]
发表于 2020-6-28 20:38:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream>

using namespace std;

int gcd(int x, int y);
int lcm(int x, int y);

int main()
{
        int m, n;
        cout << "请输入两个正整数:";
        cin >> m >> n;

        cout << "最大公约数为:" << gcd(m, n) << endl;  //最大公约数
        cout << "最小公倍数为:" << lcm(m, n);  //最小公倍数
}

int gcd(int x, int y)
{
        int temp;
        if (x < y)
        {
                temp = y;
                y = x;
                x = temp;
        }

        int c = 1;
        while (c)
        {
                c = x % y;
                x = y;
                y = c;
        }

        return x;
}

int lcm(int x, int y)
{
        int r = x * y;

        int temp;
        if (x < y)
        {
                temp = y;
                y = x;
                x = temp;
        }

        int c = 1;
        while (c)
        {
                c = x % y;
                x = y;
                y = c;
        }

        int d = r / x;
        return d;
}
这是一个求最大公约数和最小公倍数的代码
想请问一下下各位大神们
如果想在求最小公倍数的函数lcm中用
求最大公约数函数gcd中已经求得的最大公约数x
该如何实现啊
最佳答案
2020-6-28 20:47:13
引入一个新变量x
int x;
将gcd的返回值给x
x = gcd(m,n);
再使用x,需要求x和谁的最小公倍数就和谁一起带入函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-28 20:45:10 | 显示全部楼层
#include<iostream>

using namespace std;

int gcd(int x, int y);
int lcm(int x, int y);

int main()
{
        int m, n,x;
        cout << "请输入两个正整数:";
        cin >> m >> n;
        x = gcd(m,n);
        cout << "最大公约数为:" << x << endl;  //最大公约数
        cout << "最小公倍数为:" << lcm(m, x);  //最小公倍数
}

int gcd(int x, int y)
{
        int temp;
        if (x < y)
        {
                temp = y;
                y = x;
                x = temp;
        }

        int c = 1;
        while (c)
        {
                c = x % y;
                x = y;
                y = c;
        }

        return x;
}

int lcm(int x, int y)
{
        int r = x * y;

        int temp;
        if (x < y)
        {
                temp = y;
                y = x;
                x = temp;
        }

        int c = 1;
        while (c)
        {
                c = x % y;
                x = y;
                y = c;
        }

        int d = r / x;
        return d;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 20:45:44 | 显示全部楼层
没办法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 20:47:13 | 显示全部楼层    本楼为最佳答案   
引入一个新变量x
int x;
将gcd的返回值给x
x = gcd(m,n);
再使用x,需要求x和谁的最小公倍数就和谁一起带入函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 20:50:16 | 显示全部楼层
楼主我这里有一个关于最大公约数和最小公倍数的算法,你可以看一下 公约数和公倍数的性质.pdf (157.03 KB, 下载次数: 3)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 10:58:27 | 显示全部楼层
设置一个全局变量,或静态变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 13:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表