程式 编一个C++程式,递回呼叫被继承的基类成员函式,求最大公约数。
编一个C++程式,递回呼叫被继承的基类成员函式,求最大公约数。
编一个C++程式,递回呼叫被继承的基类成员函式,求最大公约数。

#include<iostream>using namespace std;class A{public:A(){}A(int i){m=i;}bool isprime(int i);protected:int m;};bool A::isprime(int i){if(m==2)return true;if(m==1||m%2==0)return false;if(m%i!=0)return isprime(i+2);elsereturn false;if(i>m/2)return true;}class prime:public A{public:prime(int i=0):A(i){}};int main(void){int n;cin>>n;prime obj(n);if(obj.isprime(3))cout<<n<<"是公约数"<<endl;elsecout<<n<<"不是公约数"<<endl;cin>>n;return 0;}
递回呼叫被继承的基类成员函式,实现求素数的功能( c++语言 )
一个不堪入目的类
#include <iostream>
#include <cstdlib>
#include <cmath>
using std::endl;
using std::cout;
using std::cin;
class Integer {
int m_i;
public:
Integer();
Integer(int);
bool is_prime(int);
};
class Derived:public Integer {
public:
Derived(int i=0):Integer(i)
{
}
};
Integer::Integer()
{
}
Integer::Integer(int i)
{
m_i = i;
}
bool Integer::is_prime(int i)
{
if (m_i < 2)
abort();
if (m_i == 2)
return true;
else {
if (i<m_i && m_i%i!=0)
return is_prime(i+1);
if (i > std::sqrt(m_i))
return true;
else
return false;
}
}
int main()
{
Derived d(2);
if (d.is_prime(2))
cout << "Primen";
else
cout << "Not primen";
return 0;
}
递回呼叫求最大公约数用c++语言编写,急,线上等~!
int gcd(int a, int b)
{
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
编写一个求最大公约数的函式,并编写呼叫这个求最大公约数函式的程式。
#include<stdio.h>#define MAX(a,b) (a>b ? a : b)#define MIN(a,b) (a<b ? a : b) 辗转相除法求最大公约数int gcd(int a, int b){ int max = MAX(a,b); 两数中较大数 int min = MIN(a,b); int r = max % min; while (r != 0) { max = min; min = r; r = max % min; } return min;}int main(){ int a, b; printf("Input o integers:n"); scanf("%d %d", &a, &b); printf("The GCD of %d and %d is %dn", a, b, gcd(a,b)); return 0;}g编译通过,程式执行结果:Input o integers:
18 12
The GCD of 18 and 12 is 6
C语言,用递回函式求最大公约数
#include<stdio.h>int gcd(int m,int n);int main(){ int m,n; printf("Input m,n:n"); scanf("%d%d",&m,&n); printf("%dn",gcd(m,n)); return 0;} int gcd(int m,int n){ if(m>n) return gcd(m-n,n); else if(m<n) return gcd(n-m,m); else if(m==n) return m; }vb编写程式使用递回求最大公约数
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = Text1
b = Text2
Text3 = gcd(a, b)
End Sub
Function gcd(ByVal a As Integer, ByVal b As Integer) As Integer
If a Mod b = 0 Then gcd = b Else gcd = gcd(b, a Mod b)
End Function
定义函式int(int a,int b)求a,b的最大公约数,要求用函式递回呼叫的方法
#include <iostream>
using namespace std;
int exc(int a,int b)这个时候引数不分大小
{
if(a > b)确保第二个数是大数
{
int c;
c = a;
a = b;
b = c;
}
if(b % a == 0)大数刚好是小的整数倍
{
return a;公约数是小数
}
else
{
return exc(b%a,a);从大数里把小数的整数倍去掉
}
}
void main()
{
cout <<exc(27,18)<<" "<<exc(18,27)<<endl;
}
VB最大公约数函式并呼叫
Function GCD(ByVal Number1 As Long, ByVal Number2 As Long) As Long
Dim u As Integer, v As Integer, r As Integer 'u较大数,v较小数,r余数
If Number1 > Number2 Then 'Number1和Number2中较大的赋值给u,较小的赋值给v
u = Number1: v = Number2
Else
u = Number2: v = Number1
End If
Do '辗转相除法求最大公约数,原理参看::baike.baidu./link?url=3fu9MS1y0MXWP6qqbXeU9kPQ_0wVujs40uoQdyllxeVtsbgXZokrqfsFrqvj_PFxO3YxWMIg
r = u Mod v
u = v: v = r
Loop Until r = 0
GCD = u '返回最大公约数
End Function
'呼叫示例:Debug.Print GCD(12, 15)
'输出结果:3
编写一个呼叫递回函式的程式,求出两个自然数m和m的最大公约数。
#include<stdio.h>
int findx(int m,int n,int x)
{ if((x%m==0)&&(x%n==0)) return x;
return findx(m,n,x+m);
}
main()
{
int x,m,n;
printf("please input mn");
scanf("%d",&m);
printf("please input nn");
scanf("%d",&n);
if(m<n) {x=m;m=n;n=x;}
x=m;
x=findx(m,n,x);
printf("the result is %dn",x);
getch();
}
编一函式求两个整数的最大公约数,呼叫该函式求3个整数的最大公约数VB题
可以用C语言么??