旋转小代码 发表于 2020-9-7 13:24:45

C++ 求最大公约数

//请完成求最大公约数算法,补全函数里的代码段
#include <iostream>
#include <string.h>

int ComFactor(int m, int n)
{
      int r = m % n;
      if (r != 0){
      n--;
      return ComFactor(m,n)};         
      return n;
}

int main( )
{
      int m,n;
      cin>>m>>n;
      cout << ComFactor(m, n) << endl;
          return 0;
}
学校作业
if 语句是自己写的,其他都是原题。
不知道哪里错了

sunrise085 发表于 2020-9-7 13:37:17

帮你修改了。不应该用if,应该用while循环
//请完成求最大公约数算法,补全函数里的代码段
#include <iostream>
#include <string.h>
using namespace std;

int ComFactor(int m, int n)
{
    int r = m % n;
    while (r != 0){
      m=n;
      n=r;
      r=m%n;
    }   
    return n;
};

int main( )
{
    int m,n;
    cin>>m>>n;
    cout << ComFactor(m, n) << endl;
    return 0;
}
页: [1]
查看完整版本: C++ 求最大公约数