c++语言的求最大公约数和最小公倍数实现

文章提供了一系列C++代码实现,包括计算两个数的最大公约数(GCD)、最小公倍数(LCM),以及使用递归方法计算斐波那契数列。此外,还有求整数和双精度浮点数的幂的函数实现。

求两个数的最大公约数和最小公倍数代码

#include <iostream>
#include <cmath>
using namespace std;
int fn1(int i,int j);
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    int i,j,x,y;
    cout<<"请输入一个正整数:";
    cin>>i;
    cout<<"请输入另一个正整数:";
    cin>>j;
    x=fn1(i,j);
    y=i*j/x;
    cout<<i<<"和"<<j<<"的最大公因数是:"<<x<<endl;
    cout<<i<<"和"<<j<<"的最小公倍数是:"<<y<<endl;

    return 0;
}
     int fn1(int i,int j)
     {
         int temp;
         if(i<j){
             temp=i;
             i=j;
             j=temp;
         }
         while(j!=0){
             temp=i%j;
             i=j;
             j=temp;
             
         }
         return i;
     }

用递归的方法编写函数求级数函数如下

F(n)=F(n-1)+F(n-2)(n>2),F1=F2=1

函数代码如下:

#include <iostream>
using namespace std;
float fn(int n);
int main()
{
    int n;
    cout << "请输入正整数n:";
        cin >> n;
    cout << "故函数值为" << fn(n) << endl;
}
float fn(int n) {
    if (n == 1)
        return 1;
    else if (n == 2)
        return 1;
    else
        return fn(n - 1) + fn(n - 2);
}

递归调用函数

#include<iostream>
#include<cmath>
using namespace std;
int getpower (int x,int y);
double getpower (double x,int y);
int main (){
    int inumber,power ;
    double dnumber;
    int ianswer ;double danswer;
    cout<<"Enter an int base number:";
    cin>>inumber;
    cout<<"Enter an double base number:";
    cin>>dnumber;
    cout<<"To what power?";
    cin>>power ;
    ianswer=getpower(inumber,power);
    danswer=getpower(dnumber,power);
    cout<<inumber<<"to the"<<power<<"the power is"<<ianswer<<endl;
    cout<<dnumber<<"to the"<<power<<"the power is"<<danswer<<endl;
    return 0;    
}
int getpwer(int x,int y){
    if(y==1)
return x;
else if(y==0)
return 1;
else if(y<0)
return 0;
else
return (x*getpower(x,y-1));
}
double getpwer(double x,int y){
    if(y==1)
return x;
else if(y==0)
return 1;
else if(y<0)
return 1/getpower(x,-y);
else
return (x*getpower(x,y-1));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值