Viết chương trình tìm các đoạn con có tổng bằng nhau. Pascal nha
Input | Output |
10 2 6 2 5 2 1 2 | 10 2+6+2 5+2+1+2 |
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.
Chương trình trên cho phép người dùng nhập vào dãy số và giá trị K. Sau đó, chương trình sẽ tìm tất cả các đoạn con trong dãy có tổng bằng K và in chúng ra màn hình.
Ví dụ, với dãy số [1, 2, 3, 4, 5] và K = 7, chương trình sẽ in ra:
2 3 4 5 2Đây là tất cả các đoạn con có tổng bằng 7 trong dãy số đã cho.
Bài 2:
uses crt;
var x,i,n,dem:integer;
begin
clrscr;
readln(n);
dem:=0;
for i:=1 to n do
begin
readln(x);
if x mod 2=0 then inc(dem);
end;
writeln(dem);
readln;
end.
uses crt;
var i,n,t,j,kt:integer;
begin
clrscr;
readln(n);
t:=0;
for i:=2 to n do
if n mod i=0 then
begin
kt:=0;
for j:=2 to trunc(sqrt(i)) do
if i mod j=0 then kt:=1;
if kt=0 then t:=t+i;
end;
write(t);
readln;
end.
Đoạn chương trình trên sẽ lặp lại việc tăng giá trị của biến "tong" lên 1 khi giá trị của "tong" đạt đến 5. Vì ban đầu "tong" được gán giá trị là 0, nên chương trình sẽ thực hiện vòng lặp 5 lần để đạt được giá trị mong muốn.
Vì vậy, sau khi chương trình được thực hiện, giá trị của "tong" sẽ là 5. Do đó, câu trả lời đúng là B. 5.
Câu 2:
uses crt;
var x,y:int64;
begin
clrscr;
readln(x,y);
writeln(x+y);
readln;
end.
a, Với lệnh For..do:
Var i:integer;
S:real; (Hoặc S:longint);
Begin
S:=0;
For i:=1 to 1980 do S:=S+i;
Writeln('Vay tong cua S=',S);
Readln
End.
*In đậm: Bạn có thể chọn 1/2 cách với S:real hay S: longint. Chỉ là nếu bạn muốn nhìn dễ hiểu hơn thì tùy bạn. H/ảnh minh họa như dưới đây :D (Đã thử và áp dụng cách này với For...do)
b, Với lệnh While...do
Var i:integer;
S:real;
Begin
S:=0; i:=0;
While i<=1980 do
Begin
S:= S+i;
i:= i+1;
End;
Writeln('Vay tong cua S=',S);
Readln
End.
*In đậm: Cũng có thể dùng S:longint (70-80% đúng) thay vì S:real (100% đúng). Nhưng khuyến cáo nên sử dụng S:real (Đã thử và áp dụng tương đối chính xác với While...do)
Good luck for you!!! :D
a) uses crt;
var s,i:longint;
begin
clrscr;
s:=0;
for i:=1 to 1980 do
s:=s+i;
writeln(s);
readln;
end.
a)
uses crt;
var s,i,n:integer;
begin
clrscr;
write('nhap n='); readln(n);
s:=0;
for i:=1 to n do
s:=s+i;
writeln(s);
readln;
end.
b)
uses crt;
var s,i,n:integer;
begin
clrscr;
write('nhap n='); readln(n);
s:=0;
i:=1;
while i<=n do
begin
s:=s+i;
inc(i);
end;
writeln(s);
readln;
end.