1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập kỹ thuật lập trình

11 956 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 25,06 KB

Nội dung

Các bài tập kĩ thuật lập trình hay thường gặp ví dụ như bài toán ATM giải quyết vấn đề rút và gửi tiền của tài khoản , ngoài ra còn nhiều bài toán khác như tính tiền điện,TÍNH TRUNG BÌNH CỘNG NHỎ NHẤT TRÊN MỖI DÒNG,ĐẾM TỪ TRONG CHUỖI ,XÉT XEM DÃY TĂNG HAY KO ??? .... Trong tài liệu là bộ sưu tầm các bài tập kĩ thuật lập trình khá cơ bản để các bạn tham khảo

Trang 1

CÁC BÀI TẬP KĨ THUẬT LẬP TRÌNH THƯỜNG GẶP

ATM

Hãy thực hiện các công việc sau cho mỗi bài toán dưới đây:

- Nêu ý tưởng (hướng giải quyết bài toán)

- Trình bày cụ thể các bước của thuật toán

- Cài đặt minh họa thành hàm/ct con để giải bài toán

Bài 1: Cho a là mảng một chiều các số nguyên gồm n

phần tử,

có tính chất như sau:

- các số lẻ ở đầu dãy, có thứ tự tăng dần (gồm n1 phần tử)

- các số chẵn ở cuối dãy, giảm dần (gồm n2 phần tử) Hãy đề xuất một thuật toán hiệu quả cho phép tìm kiếm

một giá trị x bất kỳ trong dãy này

Bài 2: Cho M là một ma trận kích thước dxc, có thứ

tự

tăng dần từ trái qua phải, từ trên xuống dưới

Hãy đề xuất và cài đặt một thuật toán hiệu quả, cho phép

tìm kiếm một giá trị x trên ma trận này

Bài 3: Cho M là một ma trận vuông kích thước nxn,

chứa các

giá trị không âm (>=0) và (i,j) là một vị trí bất

kỳ trong

ma trận

Yêu cầu: Hãy áp dụng giải thuật tham lam (greedy)

để tìm

đường đi từ ô (i,j) đến một cạnh của ma trận sao cho tổng

giá trị các ô trên đường đi là NHỎ NHẤT

vét cạn

Trang 2

Bài 1: Tìm và in ra tất cả các đường đi có thể có

từ điểm

(i,j) đến 1 cạnh của ma trận

Bài 2: Tìm và in ra tất cả các vị trí xuất hiện của

x trong

mảng 1 chiều (a,n)

Bài 3: Tìm và in ra tất cả các chuỗi ký tự khác

nhau, chỉ

gồm những chữ cái in hoa, có độ dài bằng 5 và bắt đầu bằng

một nguyên âm (AEIOUY)

Bài 4: Viết hàm tìm tất cả các vị trí có thể tạo

thành đường

4 (chặn 1 đầu) hoặc đường 3 (không bị chặn) của quân k

(k=0 hoặc k=1) trong trò chơi caro Trạng thái hiện tại

của bàn cờ được cho trước

Bài 5: Cho trước đồ thị có hướng có trọng số Hãy

liệt kê

tất cả các đường đi khác nhau có thể có, từ đỉnh A đến đỉnh B của đồ thị, từ đó tìm ra đường đi ngắn nhất

Lưu ý: đường đi trên đồ thị không được phép tạo thành vòng

Bài 6: Cho mảng (a,n) chứa các số nguyên Tìm dãy

con có

tổng lớn nhất

Đệ quy

//Bài tập mở rộng

//Viết hàm đệ quy thực hiện các công việc sau:

//1 Kiểm tra xem 1 số nguyên n có phải là số

nguyên tố ko

//2 Kiểm tra xem mảng có thứ tự tăng hay không //3 Đếm số lượng phần tử là số nguyên tố có trong mảng

//4 Kiểm tra xem mảng có gồm các số âm dương xen

kẽ ko

//5 Đếm số từ có trong 1 chuỗi ký tự bất kỳ

Trang 3

//6 Đếm số ký tự số có trong chuỗi.

//7 Đếm số ký tự là nguyên âm trong chuỗi

//8 Nhập/xuất mảng (a,n)

Đề 1

Câu 1/

Cho A là một mảng các số nguyên dương có n (0<n<100) phần tử đã có thứ

tự tăng dần và một số nguyên x (0<x<10000)

Yêu cầu: Chèn x vào mảng A sao cho A vẫn có thứ tự tăng dần, sau đó xuất

ra phần tử ở vị trí giữa (vị trí n/2, lấy phần nguyên) của mảng.

Dữ liệu vào: Từ bàn phím có cấu trúc như sau:

- Dòng đầu tiên lần lượt là hai số nguyên dương n và x biểu diễn số phần tử của mảng A và phần tử x

- Dòng tiếp theo là n số nguyên dương nhỏ hơn 10.000 (mỗi số cách nhau ít nhất một khoảng trắng) lần lượt là n phần tử của mảng A

Dữ liệu ra: Xuất ra màn hình một số nguyên duy nhất là giá trị tìm được

Ví dụ:

INPUT

5 4

2 3 5 6 7

OUTPUT

5

Câu 2/

Cho A là một mảng các số nguyên dương có n (n<100) phần tử

Yêu cầu: Đếm số lượng số nguyên tố trong mảng (Số nguyên tố là số tự nhiên lớn hơn 1 chỉ chia hết cho 1 và chính nó) Sắp xếp và xuất ra theo thứ

tự số lớn nhất, số nhỏ nhất, số lớn nhì, số nhỏ nhì, số lớn ba, số nhỏ 3 v v

Trang 4

Dữ liệu vào: có cấu trúc như sau:

- Dòng đầu tiên là một số nguyên dương duy nhất n biểu diễn số phần tử của mảng A

- Dòng tiếp theo là n số nguyên dương (mỗi số cách nhau ít nhất một khoảng trắng) lần lượt là n phần tử của mảng A (0<A[i]<30.000)

Dữ liệu ra: mảng số nguyên

Ví dụ:

INPUT

6

2 3 4 5 6 7

OUTPUT

7 2 5 3

Câu 3/

DÃY TĂNG Cho một dãy các số nguyên có n (n<200) phần tử: A0, A1, …., An-1 Dãy đã cho được gọi là tăng nghiêm ngặt nếu Ai-1<Ai

(1, )

i n

∀ ∈

(Ai<70.000)

Yêu cầu: Kiểm tra xem dãy đã cho có được gọi là tăng nghiêm ngặt không?

Nếu có xuất ra số -1, nếu không thì xuất ra vị trí i đầu tiên kể từ đầu dãy

không thỏa tính chất Ai-1<Ai

Dữ liệu vào: Nhập từ bàn phím có cấu trúc như sau:

- Dòng đầu tiên là một số nguyên dương duy nhất n biểu diễn số phần tử của dãy A

- Dòng tiếp theo là n số nguyên (mỗi số cách nhau ít nhất một khoảng trắng) lần lượt là n phần tử của dãy A

Dữ liệu ra: xuất ra màn hình một số nguyên duy nhất cho biết giá trị tính được

Ví dụ:

Trang 5

6

1 3 5 6 4 7

OUTPUT

4

Câu 4/

ĐẾM TỪ

Cho một chuỗi ký tự (chiều dài tối đa 200 ký tự) chỉ chứa các ký tự từ a đến

z, A đến Z và ký tự trắng.( chuỗi chưa được chuẩn hóa)

Yêu cầu: Đếm xem trong chuỗi vừa nhập có bao nhiêu từ? Các từ được phân biệt bởi một ký tự trắng

Dữ liệu vào: Bàn phím gồm một dòng duy nhất chứa chuỗi cho trước (cuối dòng không có ký tự xuống dòng (enter)).

Dữ liệu ra: Xuất ra màn hình một số nguyên duy nhất cho biết số từ đếm được

Ví dụ:

4

Trang 6

Câu 5/

Dãy số fibonaci được đinh nghĩa như sau:

F0 = 0

F1 = 1

Fi = Fi-1 + Fi-2 (Với mọi i >1)

Yêu cầu: Tìm Fn của dãy với n nhập từ bàn phím và n <= 50 Kết quả xuất ra màn hình một số duy nhất là giá trị tìm được

Ví dụ 1:

INPUT

3

OUTPUT

2

Ví dụ 2:

INPUT

5

OUTPUT

5

Câu 6/

Viết chương trình tìm chữ số nhỏ nhì trong 1 số nguyên a (a có nhiều nhất 9 chữ số)

Dữ liệu vào: có một dòng duy nhất chứa 1 số nguyên a

Dữ liệu ra: 1 một số nguyên duy nhất cho biết giá trị tìm được:

Trang 7

Ví dụ:

INPUT

2345678

OUTPUT

2

Câu 7/

Cho A là một mảng các số nguyên dương có n (n<50) phần tử (được đánh số

từ 0 đến n-1) và một số nguyên x

Yêu cầu: Tìm số hoàn hảo lớn nhất nhưng nhỏ hơn x

Dữ liệu vào: Nhập từ thiết bị nhập chuẩn có cấu trúc như sau:

- Dòng đầu tiên lần lượt là hai số nguyên n và x biểu diễn số phần tử của mảng A và phần tử x

- Dòng tiếp theo là n số nguyên dương nhỏ hơn 10.000 (mỗi số cách nhau ít nhất một khoảng trắng) lần lượt là n phần tử của mảng A

Dữ liệu ra: Xuất ra thiết bị xuất chuẩn một số nguyên duy nhất cho biết giá trị tìm được, nếu không có thì xuất ra số 0

Ví dụ:

INPUT

6 7

2 3 4 5 6 7

OUTPUT

6

Câu 8/

Tập con

Xét tập N số tự nhiên đầu tiên{1 N}

Trang 8

Nếu N=3, ta có một cách chia tập này thành 2 tập con sao cho tổng các số trong 2 tập con này bằng nhau: {1,2} {3}

Nếu N=4, ta có một cách chia: {1,4} {2,3}

Nếu N=5 hoặc bằng 6, ta không có cách chia, vì tổng các số trong hai tập này là 15 và 21, không thể chia đôi

Nếu N=7 ta có 4 cách chia:

{2,3,4,5} {1,6,7}

{1,3,4,6} {2,5,7}

{1,2,5,6} {3,4,7}

{3,5,6} {1,2,4,7}

Yêu cầu: Cho giá trị N Hãy tính số cách chia Không liệt kê ra các

cách chia

Dữ liệu vào: nhập từ bàn phím một số tự nhiên duy nhất N

(2<N<100)

Kết quả:xuất ra màn hình một số tự nhiên cho biết có bao nhiêu cách

chia

Ví dụ:

INPUT:

8

OUTPUT

7

Câu 9/

TÍNH TIỀN ĐIỆN

Cho X là số Kwh điện tiêu thụ trong tháng của một hộ gia đình

Yêu cầu: Xuất ra số tiền gia đình này phải trả biết quy định về điện như sau:

Trang 9

1 - 48 Kwh đầu tiên giá 600đ/Kwh

2 - 48 Kwh tiếp theo giá 1004đ/Kwh

3 - 48 kwh kế tiếp giá 1214đ/Kwh

4 - Từ kwh thứ 145 trở đi, giá 1594đ/Kwh

Dữ liệu vào: nhập từ bàn phím một số nguyên X duy nhất (0≤X≤500) biểu thị số Kwh đã tiêu thụ

Dữ liệu ra: Xuất ra màn hình một số nguyên duy nhất cho biết số tiền phải trả

Ví dụ:

INPUT

155

OUTPUT

152798

Trang 10

Câu 10/

TÍNH TRUNG BÌNH CỘNG NHỎ NHẤT TRÊN MỖI DÒNG

Cho ma trận A kích thước MxN (0<M,N<100) chứa các số nguyên dương nhỏ hơn

100000

Yêu cầu: Tính trung bình cộng của các phần tử nhỏ nhất trên mỗi dòng (làm tròn đến phần nguyên theo nguyên tắc phần thập phân <0.5 thì làm tròn xuống, ngược lại làm tròn lên)

Dữ liệu vào: Từ bàn phím có cấu trúc như sau:

- Dòng đầu tiên là hai số nguyên dương M, N biểu diễn kích thước của ma trận A (M dòng, N cột)

- M dòng tiếp theo, mỗi dòng là N số nguyên (mỗi số cách nhau ít nhất một khoảng trắng) lần lượt là N phần tử của từng dòng tương ứng của ma trận

Dữ liệu ra: Xuất ra màn hình một số nguyên duy nhất cho biết giá trị tính được

Ví dụ:

INPUT

3 4

OUTPUT

3

Câu 11/

Cho A là một mảng các số nguyên dương có n (n<10000) phần tử (n là 1 số chẵn) Yêu cầu: Tìm ước chung lớn nhất của hai phần tử nhỏ nhất trong mảng,2 phần tử nhỏ nhì trong mảng , 2 phần tử nhỏ 3 trong mảng.v.v.v

Dữ liệu vào: Nhập từ thiết bị nhập chuẩn có cấu trúc như sau:

Trang 11

- Dòng đầu tiên là một số nguyên dương duy nhất n biểu diễn số phần tử của mảng A

- Dòng tiếp theo là n số nguyên dương nhỏ hơn 10.000 (mỗi số cách nhau

ít nhất một khoảng trắng) lần lượt là n phần tử của mảng A

Dữ liệu ra: Ghi ra thiết bị xuất chuẩn những số nguyên là giá trị tính được

Ví dụ:

INPUT

6

1 12 1 4 6 1 9 1 8

OUTPUT

1 6 2

Ngày đăng: 27/03/2015, 19:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w