Home Lập trình Tổng hợp bài tập về chuỗi, đệ quy
bài tập chuỗi có lời giải

Tổng hợp bài tập về chuỗi, đệ quy

by Văn Tân
17 views
Thời gian đọc: 3 minutes
bài tập chuỗi có lời giải

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

4.8/5 - (6 bình chọn)

Bạn cũng có thể thích

Contact Me on Zalo