鱼C论坛

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

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

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

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

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

x
  1. #include<iostream>

  2. using namespace std;

  3. int gcd(int x, int y);
  4. int lcm(int x, int y);

  5. int main()
  6. {
  7.         int m, n;
  8.         cout << "请输入两个正整数:";
  9.         cin >> m >> n;

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

  13. int gcd(int x, int y)
  14. {
  15.         int temp;
  16.         if (x < y)
  17.         {
  18.                 temp = y;
  19.                 y = x;
  20.                 x = temp;
  21.         }

  22.         int c = 1;
  23.         while (c)
  24.         {
  25.                 c = x % y;
  26.                 x = y;
  27.                 y = c;
  28.         }

  29.         return x;
  30. }

  31. int lcm(int x, int y)
  32. {
  33.         int r = x * y;

  34.         int temp;
  35.         if (x < y)
  36.         {
  37.                 temp = y;
  38.                 y = x;
  39.                 x = temp;
  40.         }

  41.         int c = 1;
  42.         while (c)
  43.         {
  44.                 c = x % y;
  45.                 x = y;
  46.                 y = c;
  47.         }

  48.         int d = r / x;
  49.         return d;
  50. }
复制代码

这是一个求最大公约数和最小公倍数的代码
想请问一下下各位大神们
如果想在求最小公倍数的函数lcm中用
求最大公约数函数gcd中已经求得的最大公约数x
该如何实现啊
最佳答案
2020-6-28 20:47:13
引入一个新变量x
  1. int x;
复制代码

将gcd的返回值给x
  1. x = gcd(m,n);
复制代码

再使用x,需要求x和谁的最小公倍数就和谁一起带入函数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. using namespace std;

  3. int gcd(int x, int y);
  4. int lcm(int x, int y);

  5. int main()
  6. {
  7.         int m, n,x;
  8.         cout << "请输入两个正整数:";
  9.         cin >> m >> n;
  10.         x = gcd(m,n);
  11.         cout << "最大公约数为:" << x << endl;  //最大公约数
  12.         cout << "最小公倍数为:" << lcm(m, x);  //最小公倍数
  13. }

  14. int gcd(int x, int y)
  15. {
  16.         int temp;
  17.         if (x < y)
  18.         {
  19.                 temp = y;
  20.                 y = x;
  21.                 x = temp;
  22.         }

  23.         int c = 1;
  24.         while (c)
  25.         {
  26.                 c = x % y;
  27.                 x = y;
  28.                 y = c;
  29.         }

  30.         return x;
  31. }

  32. int lcm(int x, int y)
  33. {
  34.         int r = x * y;

  35.         int temp;
  36.         if (x < y)
  37.         {
  38.                 temp = y;
  39.                 y = x;
  40.                 x = temp;
  41.         }

  42.         int c = 1;
  43.         while (c)
  44.         {
  45.                 c = x % y;
  46.                 x = y;
  47.                 y = c;
  48.         }

  49.         int d = r / x;
  50.         return d;
  51. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 20:45:44 | 显示全部楼层
没办法。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 20:47:13 | 显示全部楼层    本楼为最佳答案   
引入一个新变量x
  1. int x;
复制代码

将gcd的返回值给x
  1. x = gcd(m,n);
复制代码

再使用x,需要求x和谁的最小公倍数就和谁一起带入函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2020-6-29 10:58:27 | 显示全部楼层
设置一个全局变量,或静态变量
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 23:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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