[C++ / Hàm đệ quy] Bài tập hàm Đệ quy (04/04/2016)

[C++ / Hàm đệ quy] Bài tập hàm Đệ quy (04/04/2016) - Chương trình viết bằng Dev C++


Bài 1: Tính S1=1+3+5+...+(2n+1) (với 1<= n<=2015)
#include<iostream>
#include<conio.h>
using namespace std;
// bien toan cuc
int n;
// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<1||n>2015)
            cout<<"\n Nhap lai n!";
    }while (n<1||n>2015);
}

// tinh tong s1=1+3+5+...+(2n+1) - de quy
long S1(int n){
    if (n==1)  
        return 3;
    return ((2*n+1) + S1(n-1));
}

int main(){
    Nhap_n();
    cout<<"\n S1= "<<S1(n);

    getch();
    return 0;
}


-----------------------------------------
 Bài 2: S2= x/1+x^2/2! +...+x^n/n! (với 1<=x<=3; 1<=n<=5)
 #include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
// bien toan cuc
int n;
float x;

// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<1||n>5)
            cout<<"\n Nhap lai n!";
    }while (n<1||n>5);
}

// nhap x
void Nhap_x(){
    do{
        cout<<"\n x= "; cin>>x;
        if(x<1||x>3)
            cout<<"\n Nhap lai x!";
    }while (x<1||x>3);
}

// Tinh giai thua (de quy)
long GiaiThua(int n){
    if(n==1)  
        return 1;
    return n*GiaiThua(n-1);
}

// tinh tong S2= x/1+x^2/2! +...+x^n/n! - de quy
float S2(int n, float x){
    if (n==1)  
        return x;
    return ((float)pow(x,n)/GiaiThua(n) + S2(n-1,x));
}

// ham main
int main(){
    Nhap_n();
    Nhap_x();
    cout<<"\n Ss= "<<S2(n,x);
    getch();
    return 0;
}
-----------------------------------------
 Bài 3: s3=2!+4!+...+n! (với n là số chẵn; 2<=n<=10)

#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
// bien toan cuc
int n;


// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<2||n>10||n%2!=0)
            cout<<"\n Nhap lai n (n la so chan thoa man 2<=n<=10)!";
    }while (n<2||n>10||n%2!=0);
}



// Tinh giai thua (de quy)
long GiaiThua(int n){
    if(n==1)   
        return 1;
    return n*GiaiThua(n-1);
}

// tinh tong s3=2!+4!+...+n! - de quy
long S3(int n){
    if (n==2)   
        return 2;
    return (GiaiThua(n)+S3(n-2));
}

// ham main
int main(){
    Nhap_n();
    cout<<"\n S3= "<<S3(n);
    getch();
    return 0;
}
-----------------------------------------
 Bài 4: S4=x^2/1! + x^4/3! +... x^(2n)/(2n-1)!


#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
// bien toan cuc
int n;
float x;

// nhap n
void Nhap_n(){
    do{
        cout<<"\n n= "; cin>>n;
        if(n<1||n>101)
            cout<<"\n Nhap lai n!";
    }while (n<1||n>101);
}

// nhap x
void Nhap_x(){
    do{
        cout<<"\n x= "; cin>>x;
        if(x<1|x>3)
            cout<<"\n Nhap lai x!";
    }while (x<1||x>3);
}

// Tinh giai thua (de quy)
long GiaiThua(int n){
    if(n==1)   
        return 1;
    return n*GiaiThua(n-1);
}

// tinh tong s4=x^2/1! + x^4/3! +... x^(2*n)/(2*n-1) - de quy
float S4(int n, float x){
    if (n==1)   
        return x*x;
    return ((float)pow(x,2*n)+1/GiaiThua(2*n-1) + S4(n-1,x));
}

// ham main
int main(){
    Nhap_n();
    Nhap_x();
    cout<<"\n S4= "<<S4(n,x);
    getch();
    return 0;
}


 http://lap-trinh-may-tinh.blogspot.com/

0 nhận xét:

Cảm ơn bạn đã quan tâm tới bài viết này!