Recent Posts

Code C++: Đệ quy phi tuyến

-
Đệ quy phi tuyến: Thân hàm đệ quy lặp gọi 1 số lần chính nó.

long U (int n){ 
    if (n<6) return n;
    long S= 0;
    for (int i = 5; i>0; i--) 
          S+= U(n-i);
    return S;
}

Bài toán 1: Tính tổng n phần tử trong danh sách

Viết chương trình tính tổng n phần tử a0,...,an-1 được định nghĩa đệ quy như sau:



Mã nguồn:
#include<conio.h>
#include<iostream>
using namespace std;
long int S(int a[], int n) {
if(n==1)
return a[0];
else
return a[n-1]+S(a,n-1);
}

int main(){
int *a,n;
cout<<"n = ";
cin>>n;
a = new int[n];
cout<<"Nhap vao "<<n<<" phan tu\n";
for(int i=0; i<n ; i++){
cout<<"a["<<i<<"] = ";
cin>>a[i];
}
cout<<"Tong "<<n<<" phan tu trong mang A la "<<S(a,n);
getch();
return 0;
}

Bài toán 2: Tính tích n phần tử trong danh sách
Viết chương trình tính tổng n phần tử a0,...,an-1 được định nghĩa đệ quy như sau:

Mã nguồn:
#include<conio.h>
#include<iostream>
using namespace std;
long int S(int a[], int n) {
if(n==1)
return a[0];
else
return a[n-1]*S(a,n-1);
}

int main(){
int *a,n;
cout<<"n = ";
cin>>n;
a = new int[n];
cout<<"Nhap vao "<<n<<" phan tu\n";
for(int i=0; i<n ; i++){
cout<<"a["<<i<<"] = ";
cin>>a[i];
}
cout<<"Tich "<<n<<" phan tu trong mang A la "<<S(a,n);
getch();
return 0;
}

Bài toán 3: Đếm số lần xuất hiện của phần tử x trong danh sách
Viết  chương  trình  đếm  số  lần  xuất  hiện  của  số  nguyên  x  trong  danh  sách A={a0,...,an-1} với n phần tử. Thuật toán đệ quy được thể hiện như sau:

Mã nguồn:
#include<conio.h>
#include<iostream>
using namespace std;
/*Ham tra ve so lan xuat hien cua x trong danh sachA*/
int Find(int a[], int n, int x) {
if(n==0)
return 0;
else if(a[n-1]==x)
return 1+Find(a,n-1,x);
else
return Find(a,n-1,x);
}

int main(){
int *a,n,x;
cout<<"n = ";
cin>>n;
a = new int[n];
cout<<"Nhap vao danh sach "<<n<<" phan tu\n";
for(int i=0; i<n ; i++){
cout<<"a["<<i<<"] = ";
cin>>a[i];
}
cout<<"x = ";
cin>>x;
cout<<"So lan xuat hien cua "<<x<<" trong danh sach la "<<Find(a,n,x);
getch();
return 0;
}
Tag: C, C++, Đệ quy tuyến tính, Đệ quy, Khử đệ quy, recursive, đệ quy nhị phân, đệ quy hỗ tương, Đệ quy phi tuyến

Related Post:

  • Bài 3 - Lập trình hướng đối tượng với JavaĐể lập trình với JAVA thì chúng ta phải nắm chắc 4 kỹ thuật sau:Download source code (Chú ý sau khi click download nhìn lên góc trên cùng bên phải chọn skip add - Bỏ quảng cáo).1. Encapsulation (Đóng gói) Mục đích: Viết code theo kỹ thuật này dễ bảo trì, chỉ cho phép class ngoài truy xuất tới một số phương thức cho phép, tính mở rộng cao.2. Inheritance (Kế t… Read More
  • Cài đặt và tạo một ứng dụng Android đầu tiênĐể bắt đầu làm việc với Android thì chúng ta phải cài đặt những công cụ sau:1. JDK (Java Development Kit) - Bộ công cụ phát triển JavaLink Download 2. ADT (Android Developer Tools)Gói ADT mà Android cung cấp đầy đủ các công cụ sau:Eclipse + ADT pluginAndroid SDK ToolsAndroid Platform-toolsThe latest Android platformThe latest Android system image for the emulator… Read More
  • Bài 4 - Multithreading trong Java Trong Java chúng ta có thể tạo ra nhiều Thread để chạy ở các luồng khác nhau vì vậy gọi là Multi threading và tại một thời điểm có thể có nhiều Thread chạy đồng thời.Để định nghĩa một thread trong Java ta có thể sử dụng cách sau:public class Main { public static void main(String[] args) { //Tạo một thread Thread th = new Thread(childThread); //Run thread đồng… Read More
  • Activity Lifecycle - Vòng đời sống của một activityChúng tôi đang hoàn thiện chức năng này...… Read More
  • Bài 1 - Cài đặt môi trường Code Java Để bắt đầu lập trình với môi trường java các bạn cần cài 2 tool sau: 1. JDK (Java Development Kit) - Bộ công cụ phát triển Java  Hướng dẫn cài đặt: Download 2. Eclipse (Môi trường để lập trình) Hướng dẫn cài đặt: Cách 1: Vào trang www.eclipse.org chọn mục Download và tìm sản phẩm Eclipse để cài Cách 2: Vào trực tiếp link sau cho nhanh:  &nbs… Read More
  • Bài 2 - Bắt đầu với Java1. Data type (Các kiễu dữ liệu):Có 2 loại:+ Primitive Data Types (Dữ liệu nguyên thuỷ):+ Oject Data Types (Dữ liệu kiểu object)     String, Double, Integer, Float...2. Operations (Các toán tử): (Tập chung vào 2 loại sau)+ Các toán tử về số học:phép cộng (+), phép trừ (-), phép nhân (*), phép chia (/), phép chia lấy dư (%), phép tăng lên 1 (++), Phép giả… Read More




Klik untuk melihat kode: :) =( :s :D :-D ^:D ^o^ 7:( :Q :p T_T @@, :-a :W *fck* x@