Tổng hợp bài tập về chuỗi, đệ quy
Tổng hợp các bài tập chuỗi và đệ quy có lời giải
Bài tập chuỗi có lời giải
Câu a: Nhập vào 2 chuỗi
#include <iostream> #include<string> using namespace std; int main() { string s1; string s2; cout << “nhap ho:”; getline(cin, s1); cout <<“nhap ten:”; getline(cin,s2); cout<<“ho la:”<<s1; cout<<“ten la:”<<s2; }
Câu b: đổi chữ thường sang hoa
#include <stdio.h> #include <conio.h> #include <string.h> #include<stdlib.h> int main(){ char str[] =”hoang phuc”; /* printf (“nhap vao 1 chuoi”); gets(str); printf (“chuoi nhan duoc la: “, str); */ strupr(str); //strlwr(str); chu thuong sang hoa printf(“chuoi in Hoa: %s”, str); getch(); }
Câu c: Ghép chuỗi lại với nhau
#include <iostream> #include <string> using namespace std; int main() { //Khai báo 2 xâu s1, s2: string s1, s2; //Nh?p vào 2 xâu dó: cin >> s1 >> s2; //Ghép 2 xâu r?i xu?t ra màn hình: cout << s1 + s2; //K?t thúc: return 0; }
Bài tập về đệ quy có lời giải
ĐỆ QUY TUYẾN TÍNH
Câu 1: Viết hàm đệ quy tính số hạng thứ n của dãy Fibo
#include<stdio.h> #include<conio.h> long Fibo(int n) { if(n == 0) return 0; if(n == 1) return 1; return Fibo(n – 1) + Fibo(n – 2); } int main() { int n; printf(“\nNhap n: “); scanf(“%d”, &n); long kq = Fibo(n); printf(“\nFibo = %d”, kq); getch(); return 0; }
Câu 2: Tính S(n) = 1 + 2 + 3 + … + n
#include<stdio.h> #include<conio.h> long Tong(int n) { if(n == 0) return 0; return Tong(n – 1) + n; } int main() { int n, S; printf(“\Nhap n = “); scanf(“%d”, &n); S = Tong(n); printf(“S = %d”, S); getch(); return 0; }
Câu 3: Hãy cài đặt hàm đệ quy tính T(n) = n! = 1 x 2 x 3 x … x n. Trong đó T(0) = 1
#include<stdio.h> #include<conio.h> long GiaiThua(int n) { if(n == 0) return 1; return GiaiThua(n – 1) * n; } int main() { int n, T; printf(“\Nhap n = “); scanf(“%d”, &n); T = GiaiThua(n); printf(“T = %d”, T); getch(); return 0; }
Câu 4: Hàm đệ quy tính hàm mũ X^n
#include<stdio.h> #include<conio.h> int mu(int a,int b) { if(b==1) return a; else return mu(a,b-1)*a; } int main() { int n,x; printf(“nhap so “); scanf(“%d”,&n); printf(“so mu “); scanf(“%d”,&x); printf(“%d”,mu(n,x)); getch(); return 0; }
Câu 5: Viết chương trình tìm USCLN và BSCNN của a và b sử dụng đệ quy
* Chuong trinh tim uoc chung lon nhat (USCLN) * va boi so chung nho nhat (BSCNN) cua 2 so a và b * @author viettuts.vn #include<stdio.h> /** * Tim uoc so chung lon nhat (USCLN) */ int USCLN(int a, int b) { if (b == 0) return a; return USCLN(b, a % b); } /** * Tim boi so chung nho nhat (BSCNN) */ int BSCNN(int a, int b) { return (a * b) / USCLN(a, b); } /** * ham main */ int main() { int a, b; printf(“Nhap so nguyen duong a = “); scanf(“%d”, &a); printf(“Nhap so nguyen duong b = “); scanf(“%d”, &b); // tinh USCLN cua a và b printf(“\nUSCLN cua %d va %d la: %d”, a, b, USCLN(a, b)); // tinh BSCNN cua a và b printf(“\nUSCLN cua %d va %d la: %d”, a, b, BSCNN(a, b)); }
Câu 6: Bài toán tháp hà nội đệ quy
#include<stdio.h> void TOH(int num, char x, char y, char z); int main() { int num; printf(“\nNhap so dia: “); scanf(“%d”, &num); TOH(num – 1, ‘A’, ‘B’, ‘C’); return (0); } void TOH(int num, char x, char y, char z) { if (num > 0) { TOH(num – 1, x, z, y); printf(“\n%c -> %c”, x, y); TOH(num – 1, z, y, x); } }
Câu 7: Viết hàm đệ quy tính số hạng thứ n của dãy Fibo
#include<stdio.h> #include<conio.h> long Fibo(int n) { if(n == 0) return 0; if(n == 1) return 1; return Fibo(n – 1) + Fibo(n – 2); } int main() { int n; printf(“\nNhap n: “); scanf(“%d”, &n); long kq = Fibo(n); printf(“\nFibo = %d”, kq); getch(); return 0; }
>> Mời bạn xem thêm: Bài tập chuỗi ký tự trong C
Trên đây là những bài tập về chuỗi và đề quy mình đã giải chi tiết, nếu có thắc mắc gì phản hồi về cho mình nhé.
Sưu tầm: Tas digital
Viết hàm đệ quy tính số hạng thứ n của dãy Fibo . Ad có bài nào tương tự như vậy nữa không