Cho N và dãy số a1.aN hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng k

2 câu trả lời

Program baitap;

Uses crt;

Var A:array[1..200] of integer;

      N,i,k,dem:integer;

Begin

Clrscr;

Write('N='); Readln(N);

Write('k='); Readln(k);

dem:=0;

For i:=1 to N do 

     Begin

     Write('A[',i,']=');

     Readln(A[i]);

     If A[i]=k then dem:=dem+1;

     End;

Writeln('Co ',dem,' so hang trong day bang ',k);

Readln

End.

* Xác định bài toán :

- Input : số n và dãy a1, a2, ... , an và số k

- Output : số lượng số hạng có giá  trị bằng k

* Ý tưởng :

- Tìm kiếm tuần tự được thực hiện một cách tự nhiên. Lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với giá trị khóa k cho đến khi gặp số hạng bằng khóa k thì tăng giá trị biến đếm lên một đơn vị. Trong trường hợp thứ hai không có gái trị nào bằng khóa k giá trị biến đếm sẽ bằng 0

* Mô tả thuật toán :

- Bước 1 : nhập n, số hạng  a1, a2, ... , an và khóa k

- Bước 2 : i ← 1, dem ← 0

- Bước 3 : nếu i > n thì thông báo gia trị dem rồi kết thúc

- Bước 4 : nếu a[i] = k thì dem ← dem + 1;

- Bước 5 : i ← i + 1, quay lại bước 3

Câu hỏi trong lớp Xem thêm