Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

LƯU Ý: Tất cả bài bên dưới đều viết bằng 3 cách: trong main, chương trình con, đệ qui.

1. Viết Chương Trình Tính Giai Thừa.

#include<iostream>

using namespace std;

long long giaiThua(int n) {

if (n == 0)

return 1;

else

return n * giaiThua(n - 1);

int main() {

int n;

cout << "Nhap so nguyen duong n: ";

cin >> n;

cout << "Giai thua cua " << n << " la: " << giaiThua(n);

return 0;

2. Chương Trình Tổng Của N Số.

#include<iostream>

using namespace std;


int main() {

int n, sum = 0;

cout << "Nhap so nguyen duong n: ";

cin >> n;

for(int i = 1; i <= n; i++) {

sum += i;

cout << "Tong cua " << n << " so dau tien la: " << sum;

return 0;

3.
#include <iostream>
#include <vector>

using namespace std;

// Hàm tính giá trị Yn theo phương pháp đệ quy


int calculateYn(int n) {
if (n == 1) {
return 1;
} else if (n == 2) {
return 2;
} else if (n == 3) {
return 3;
} else {
return calculateYn(n - 1) + 2 * calculateYn(n - 2) + 3 * calculateYn(n - 3);
}
}

// Hàm tính giá trị Yn theo phương pháp không đệ quy


int calculateYnNonRecursive(int n) {
vector<int> Y(n + 1);
Y[1] = 1;
Y[2] = 2;
Y[3] = 3;
for (int i = 4; i <= n; i++) {
Y[i] = Y[i - 1] + 2 * Y[i - 2] + 3 * Y[i - 3];
}
return Y[n];
}

int main() {
int n;
cout << "Nhập n: ";
cin >> n;
cout << "Giá trị Yn theo phương pháp đệ quy: " << calculateYn(n) << endl;
cout << "Giá trị Yn theo phương pháp không đệ quy: " <<
calculateYnNonRecursive(n) << endl;
return 0;
}
4. Dưới Đây Sử Dụng Giải Thuật Euclid Để Giải Quyết Bài Toán Tìm Ước Số Chung
Lớn Nhất (USCLN) Và Bội Số Chung Nhỏ Nhất (BSCNN) Của Hai Số Nguyên Dương
A Và B.
#include <iostream>

using namespace std;

// Hàm tìm ước số chung lớn nhất (USCLN)


int USCLN(int a, int b) {
while (a != b) {
if (a > b) {
a -= b; // a = a - b;
} else {
b -= a; // b = b - a;
}
}
return a; // Hoặc return b; vì lúc này a và b bằng nhau
}

// Hàm tìm bội số chung nhỏ nhất (BSCNN)


int BSCNN(int a, int b) {
return (a * b) / USCLN(a, b);
}

int main() {
int a, b;
cout << "Nhập a: ";
cin >> a;
cout << "Nhập b: ";
cin >> b;
cout << "USCLN của " << a << " và " << b << " là: " << USCLN(a, b) << endl;
cout << "BSCNN của " << a << " và " << b << " là: " << BSCNN(a, b) << endl;
return 0;
}

5. Tìm số Fibonacci
- Sử dụng đệ quy
int fibonacci(int n) {
if (n <= 1)
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}
- Không sử dụng đệ quy
int fibonacci(int n) {
int a = 0, b = 1, c;

if (n == 0)
return a;
for (int i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}

6.

NỘP BÀI: bài làm bỏ file word (hoặc bỏ thư mục từng file riêng), đặt học tên của
mình, up lên phần files của buổi học 2.
Hạn chót: hết ngày 12/10/2023

You might also like