i:=1,J:=1;
while i<5 do i=i+1,j=j+i;
giá trị cuối của i,j
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
a) Chương trình bị lỗi
b) Chương trình bị lỗi
c) Chương trình bị lỗi luôn
Sửa lại:
program fashkfs;
uses crt;
var n, i,j,m: longint;
a, b: array[1..1000] of integer;
begin
clrscr;
readln(n, m);
for i := 1 to m do
begin
read(a[i]);
end;
b[0] := 1;
for i := 1 to m do
begin
for j := 1 to n do
begin
if (b[j - a[i]] <> 0) and (a[i] <= j) then
begin
b[j] := b[j] + b[j - a[i]];
end;
end;
end;
writeln(b[n]);
readln;
end.
a) i=7, j=3, k=6
vòng lặp while <ĐK> do lặp cho đến khi đk sai, vậy i+1 cho đến i không <=6.
Sau đó j:=j+1 <=> j=2+1 = 3 và k:=k+j <=> k= 3 + 3, 2 dòng này nằm ngoài vòng lặp while do vì không có cặp begin end .
b) i = 7, j= 8, k=28
j:=j+1 và k:=k+j nằm cùng khối với i:=i+1 trong begin end, nên mỗi khi i tăng lên thì j và k lần lượt cũng được tính
ví dụ: bắt đầu vòng lặp
*điều kiện i<=6? True
{
i+1 => i= 2
j+1 => j=3
k+j => k= 3 + 3 = 6
}
* tương tự
Độ phức tạp của thuật toán sắp xếp nổi bọt là O(n2)
T = O(n) + O(n2) = O(n2)
a/
Giá trị đầu của vòng lặp là 1, giá trị cuối là 5 => biến đếm của k lần lượt tăng thành 1 dãy số 1,2,3,4,5
k mod 2 =0 -> nếu k là số chẵn thì biến i tăng lên 1 đơn vị. Dãy số gồm 2 số chẵn (2,4) => i tăng 2 đơn vị => i = -1 + 1 + 1 = 1
j = j + i => j = 20 + 1 = 21
Vậy i=1; j=21
b/
Lần lặp thứ nhất: m=0*10 + 7 = 7 ; n = 12
Lần lặp thứ 2: m=7*10 + 2 = 72; n= 1
Lần lặp thứ 3: m=720 + 1 = 721; n=0 (n=0 => dừng vòng lặp)
Vậy m=721
i=5; j=15