C++中用递归法求m,n的最大公约数怎么求啊?第一次接触递归,编不来。
发布网友
发布时间:2023-07-23 00:22
我来回答
共2个回答
热心网友
时间:2023-10-02 12:22
递归实现求公约数,代码如下:
#include <stdio.h>
int *( int a, int b )
{
return a % b != 0 ? *( b, a % b ) : b;
}
int main()
{
int a, b;
scanf( "%d%d", &a, &b );
printf( "%d\n", *( a, b ) );
}
望采纳
热心网友
时间:2023-10-02 12:23
这是迭代的方法//迭代求最大公约数#include <stdio.h>int main( void )
{
int m, n; //声明两个整型变量
void max( int m, int n ); //求m,n最大公约数
printf( "输入两个元素:\n" );
scanf( "%d%d", &m, &n );
max( m, n );
return 1;
}void max( int m, int n )
{
int x, y; //保存m,n
x = m;
y = n;
while( m != n )
{
if( m > n )
{
m = m - n;
}
else
{
n = n -m;
}
}
printf( "%d和%d最大公约数为:%d\n", x, y, m );
}