高手帮我看看简单问题我这个怎么会运行错误的。
这个事欧几里算法;
#include<iostream>
#include<math>
using namespace std;
long gcd(long m,long n);
long main()
{
double m,n;
cin>>n>>m;
cout<<"最大的公因数:"<<gcd(n,m)<<endl;
return 0;
}
long gcd(long m,long n)
{
while(n!)
{
long rem=m%n;
m=n;
n=rem;
}
return m;
}
[解决办法]
改正了:
- C/C++ code
#include<iostream>#include<math.h> // 这里少了个".h"using namespace std;long gcd(long m,long n);int main(){ long m,n; // 类型写错 cin>>n>>m; cout<<"最大的公因数:"<<gcd(n,m)<<endl; return 0;}long gcd(long m,long n){ while(n) // 多了个感叹号 { long rem=m%n; m=n; n=rem; } return m;}
[解决办法]
- C/C++ code
#include<iostream>//#include<math.h> --> 这个文件根本就没用到using namespace std;long gcd(long m,long n);int main(){ double m,n; cin>>n>>m; cout<<"最大的公因数:"<<gcd(n,m)<<endl; return 0;}long gcd(long m,long n){ while(n) //这个感叹号有点纠结 见过 "!n" 没见过 "n!" { long rem=m%n; m=n; n=rem; } return m;}