K
Khách

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.

9 tháng 8 2020

mình nghĩ là vậy

à mà tiện thể, ban nãy mình để quên não dưới đất
cho phép mình lụm lên lại cái nha :)))Lập trình đơn giản

9 tháng 8 2020

sửa thêm chỗ else if kia nữa là ok :)))
quaylui(sum, j + 1)

Trong kỳ thi học sinh giỏi môn Tin học, em là người đạt giải đặc biệt. Ban tổ chức cho phép em chọn các phần thưởng cho mình. Các phần thưởng xếp thành một dãy được đánh số từ 1 đến N (0 ≤ N ≤ 10000), phần thưởng thứ i có giá trị là ai (1 ≤ ai ≤ 100). Em được phép chọn các phần thưởng cho mình theo nguyên tắc không chọn 3 phần thưởng liên tiếp nhau trong dãy. Em hãy lập chương...
Đọc tiếp

Trong kỳ thi học sinh giỏi môn Tin học, em là người đạt giải đặc biệt. Ban tổ chức cho phép em chọn các phần thưởng cho mình. Các phần thưởng xếp thành một dãy được đánh số từ 1 đến N (0 ≤ N ≤ 10000), phần thưởng thứ i có giá trị là ai (1 ≤ ai ≤ 100). Em được phép chọn các phần thưởng cho mình theo nguyên tắc không chọn 3 phần thưởng liên tiếp nhau trong dãy. Em hãy lập chương trình chọn ra các phần thưởng sao cho tổng giá trị của các phần thưởng nhận được là lớn nhất.

Dữ liệu: Cho trong file PTHUONG.INP gồm các dòng:

- Dòng đầu tiên là số phần thưởng N.

- Dòng tiếp theo ghi N số ai (1 ≤ i ≤ N).

Kết quả: Ghi ra file PTHUONG.OUT gồm ba dòng:

- Dòng đầu ghi tổng giá trị lớn nhất của các phần thưởng đã chọn và số lượng các phần tử được chọn đó.

- Dòng tiếp theo ghi vị trí của các phần thưởng đã chọn theo thứ tự trong dãy.

- Dòng cuối cùng ghi giá trị của các phần thưởng đã chọn theo thứ tự trong dãy.

Ví dụ:

PTHUONG.INP PTHUONG.OUT

7

6 9 1 3 5 10 4

32 5

1 2 4 6 7

6 9 3 10 4

1
20 tháng 2 2020

uses crt;

type mang= array[0..10000 ] of byte;

var a,d,m:mang; dd:array[1..20,1..400] of byte;

b:array [1..10000] of boolean;

r,dem, t,n,max,i,j:integer;

f:text;

procedure doc;

var i:integer;

begin

assign(f,'pthuong.inp');

reset(f);

readln(f,n);

for i:=1 to n do

readln(f,d[i]);

close(f);

end;

function kt( c:mang):boolean;

var i,j:longint;

q:boolean;

begin

i:=1;

q:=true;

while (i<=r-2) and q do

begin

j:=1;

while c[i+j-1]+1=c[i+j] do

j:=j+1;

if j>=3 then q:=false else q:=true;

i:=i+1;

end;

kt:=q;

end;

Procedure print;

var i,tong: byte;

begin if kt(a)=true then

begin dem:=dem+1;

tong:=0;

for i:=1 to r do

begin

dd[dem,i]:= a[i];

tong:=tong+d[a[i]];

end; m[dem]:=tong;

end;

end;

Procedure Find(k:byte);

var j: byte;

begin

if k>r then print else

begin

for j:=1 to n do

if b[j] and (j>a[k-1]) then

begin

a[k]:=j; b[j]:=false;

Find(k+1);

b[j]:=true;

end;

end;

end;

begin

clrscr;

doc;

dem:=0;

r:= n-(n div 3);

for t:=1 to n do

b[t]:=true; a[0]:=0;

Find(1);

max:=m[1];

for i:=1 to dem do

if max< m[i] then max:=m[i];

assign(f,'PTHUONG.OUT');

rewrite(f);

writeln(f,max);

for i:=1 to dem do

if max=m[i] then

begin

j:=1;

while (dd[i,j] <>0) do

begin

write(f,dd[i,j]:2);

j:=j+1;

end;

end;

close(f);

end.

Bạn tham khảo bộ code này nhé.

21 tháng 2 2020

Cảm ơn nhiều ạ.

var i,n,d:word;
t,b,kt:array[1..10] of word;

procedure nhap;
var f:text;
begin
assign(f,'dulieu.inp');
reset(f);
readln(f,n);
for i:=1 to n do read(f,t[i]);
close(f);
fillchar(b,sizeof(kt),0);
end;

procedure tailap;
var i,j,d:integer;
begin
for i:=1 to n do
begin
d:=0;
for j:=1 to n do
begin
if b[j]=0 then d:=d+1;
if d=t[i]+1 then break;
end;
b[j]:=i;
end;
end;

BEGIN
nhap;
tailap;
for i:=1 to n do write(b[i],' ');
readln
END.

Có n file đánh số 1, 2, ..., n. File thứ i có kích thước là ai. Cho trước một số đĩa mềm trắng, dung lượng của mỗi đĩa là M. Yêu cầu: Hãy tìm cách ghi file lên các đĩa mềm sao cho số đĩa mềm phải dùng là ít nhất. (Tất nhiên mỗi đĩa không thể chứa quá dung lượng M và mỗi file phải nằm gọn trong một đĩa nào đó chứ không được cắt nhỏ và ghi vào nhiều đĩa khác nhau). Ràng buộc: 1...
Đọc tiếp

Có n file đánh số 1, 2, ..., n. File thứ i có kích thước là ai. Cho trước một số đĩa mềm trắng, dung lượng của mỗi đĩa là M.

Yêu cầu: Hãy tìm cách ghi file lên các đĩa mềm sao cho số đĩa mềm phải dùng là ít nhất. (Tất nhiên mỗi đĩa không thể chứa quá dung lượng M và mỗi file phải nằm gọn trong một đĩa nào đó chứ không được cắt nhỏ và ghi vào nhiều đĩa khác nhau).

Ràng buộc: 1 ≤ n ≤ 100; các ai và M là các số nguyên dương: 1 ≤ ai ≤ M ≤ 10000. ∀i

Dữ liệu: Vào từ file văn bản DISKS.INP

. Dòng 1: Chứa 2 số n, M.

. Các dòng tiếp: Chứa các số từ a1 đến an theo đúng thứ tự đó.

Kết quả: Ghi ra file văn bản DISKS.OUT

. Dòng 1: Ghi số k là số đĩa phải dùng.

. Dòng thứ i trong k dòng tiếp theo: Ghi số hiệu của các file được ghi vào đĩa mềm thứ i.

Ví dụ:

DISKS.INP DISKS.OUT

8 14

9 7 4 3 3 2 8 6

3

1 4 6

7 8

2 3 5

2
18 tháng 2 2020

ko hiểu gì luôn ???lolang

23 tháng 11 2019

câu hỏi này bạn nên để chị @Nguyễn Minh Lệ trả lời giúp bạn

24 tháng 11 2019

Program hotrotinhoc;

var a,b,max,x,d,i,y: longint;

n,k,s: string;

begin

readln(n); s:=n;

while length(n)<>1 do

begini:=i+1;
k:=k+

s[i];

val(k,x);

delete(n,1,1);

val(n,y);

d:=x+y;

if d>max then

begin

max:=y+x;

a:=x;

b:=y;

end;

end;

write(a,' ',b);

readln

end.

24 tháng 5 2019

uses crt;
var n,n1,s:real;
begin
clrscr;
write('Nhap n: ');readln(n);
n1:=2*n+1;
s:=((n1 - 1)/2+1)*(n1 + 1)/2;
write(s:0:0);
readln
end.

23 tháng 12 2019

var
i,j,n,k,x,vt:longint;
s,r,s1,s2:ansistring;
A:array[0..101] of boolean;
B:array[0..101] of longint;

BEGIN
assign(input,'gach.inp'); reset(input);
assign(output,'gach.out'); rewrite(output);

read(n,k);

for i:=1 to 101 do
A[i]:=true;

A[1]:=false;
for i:=1 to trunc(sqrt(101)) do
if (A[i] = true) then
for j:=2 to 101 div i do
A[i*j]:=false;

vt:=0;
for i:=1 to 101 do
if (A[i] =true) then
begin
inc(vt);
B[vt]:=i;
end;

for i:=1 to n do
begin
str(B[i],r);
s:=s+r;
end;

x:=length(s)-k-1;
vt:=1;
while (x >= 0) do
begin
for j:=vt to length(s)-x do
if (s[vt] > s[j]) then vt:=j;
s1:=s1+s[vt];
dec(x);
inc(vt);
end;

x:=length(s)-k-1;
vt:=1;
while (x >= 0) do
begin
for j:=vt to length(s)-x do
if (s[vt] < s[j]) then vt:=j;
s2:=s2+s[vt];
dec(x);
inc(vt);
end;

writeln(s);
writeln(s1);
writeln(s2);

close(input);
close(output);
END.

23 tháng 12 2019

không ai thèm trả lời thì thôi tự trl cho nó nhanh

17 tháng 2 2020

Bạn tham khảo code này nhé.

Uses crt;
Const fo = 'chenxau.out';
dau: array[1..3] of String[1]= ('','-','+');
s:array[1..9] of char=('1','2','3','4','5','6','7','8','9');
Var d:array[1..9] of String[1];
m:longInt;
f:text;
k:integer;
found:boolean;
Procedure Init;
Begin
Write('Cho M=');
Readln(m);
found:=false;
end;
Function tinh(s:string):longint;
Var i,t:longint;
code:integer;
Begin
i:=length(s);
While not(s[i] in ['-','+']) and (i>0) do dec(i);
val(copy(s,i+1,length(s)-i),t,code);
If i=0 then begin tinh:=t; exit; end
else
begin
delete(s,i,length(s)-i+1);
If s[i]='+' then tinh:=t+tinh(s);
If s[i]='-' then tinh:=tinh(s)-t;
end;
End;
Procedure Test(i:integer);
Var st:string; j:integer;
Begin
st:='';
For j:=1 to i do st:=st+d[j]+s[j];
If Tinh(st) = m then begin writeln(f,st); found:=true; end;
End;
Procedure Try(i:integer);
Var j:integer;
Begin
for j:=1 to 3 do
begin
d[i]:=dau[j]; Test(i);
If i<9 then try(i+1);
end;
End;
BEGIN
Clrscr;
Init;
Assign(f,fo);Rewrite(f);
for k:=1 to 2 do
begin
d[1]:=dau[k];
Try(2);
end;
If not found then write(f,'khong co ngiem');
Close(f);
END.

18 tháng 2 2020

Cảm ơn ạ.