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.
cau1
uses crt;
const
fi='CAU1.inp';
fn='CAU1.out';
var n: string;
f:text;
m,i,a,tong: integer;
BEGIN
clrscr;
assign(f,fi);reset(f);
read(f,n);
read(f,m);
close(f);
assign(f,fn);rewrite(f);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(f,tong);
close(f);
readln;
END.
cau3
uses crt;
const
fi='CAU1.inp';
fn='CAU1.out';
var n: string;
f:text;
m,i,a,tong: integer;
BEGIN
clrscr;
assign(f,fi);reset(f);
read(f,n);
read(f,m);
close(f);
assign(f,fn);rewrite(f);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(f,tong);
close(f);
readln;
END.
Câu 2:
*Ý tưởng :
+ Ý 1:
- Bạn không cần chạy đến vô hạn như đề cho đầu , bạn chỉ cần 1 vòng for chạy đến k là được bởi vì nó lấy kí tự thứ k.
- Bạn cho 1 vòng for chạy đến k và chuyển dãy số đó sang xâu và cho 1 biến đếm vào
- Nếu biến đếm bằng với k thì write(s[d]);
+ Ý 2:
- Các số có 1 chữ số chỉ có từ 1 đến 9. Nên nếu d<9 thì write(s[d]);
- Nếu mà d>9 và d là số lẻ thì write(s[d-1],s[d]) ngược là nếu d là số chẵn thì write(s[d],s[d+1]);
Đây là ý tưởng , nếu bạn không hiểu chỗ nào cứ hỏi mình , bạn làm theo ý tưởng mình xem nhé. Nếu không được mình sẽ gửi bài làm của mình cho bạn xem.
uses crt;
const fi='bt.inp';
var a:array[1..100]of real;
i,dem:integer;
f1:text;
begin
clrscr;
assign(f1,fi); reset(f1);
dem:=0;
while not eof(f1) do
begin
inc(dem);
read(f1,a[dem]);
if dem mod 2=0 then readln(f1);
end;
for i:=1 to dem do
write(a[i]:4:1,' ':4);
close(f1);
readln;
end.
var n,m,i,j,p,q,k,tam:byte;
a:array[1..100,1..100] of integer;
b:array[1..10000] of integer;
f:text;
function tong(x,y:integer):integer;
var i,j:integer;
begin
tong:=0;
for i:=x to x+p-1 do
for j:=y to y+q-1 do
tong:=tong+a[i,j];
exit(tong);
end;
begin
assign(f,'HCN.inp');reset(f);
readln(f,n,m,p,q);
for i:=1 to n do
begin
for j:=1 to m do read(f,a[i,j]);
readln(f);
end;
close(f);
assign(f,'HCN.out');rewrite(f);
k:=0;
for i:=1 to n-q+1 do
begin
for j:=1 to m-p+1 do
begin
inc(k);
b[k]:=tong(i,j);
end;
end;
for i:=1 to k-1 do
for j:=k downto i+1 do
if b[j]>b[j-1] then
begin
tam:=b[j];
b[j]:=b[j-1];
b[j-1]:=tam;
end;
writeln(f,b[1]+b[2]);
close(f);
readln;
end.
const fi='gameshow.inp';
fo='gameshow.out';
var f1,f2:text;
a,b:array[1..100]of integer;
n,i,tg,d,s,x,j,vtd,vt:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{----------------------xu-ly------------------}
tg:=0;
for i:=1 to n do
tg:=tg+a[i];
for i:=n downto 1 do
if tg mod i=0 then
begin
d:=0;
s:=0;
x:=tg div i;
for j:=1 to n do
begin
s:=s+a[j];
if s=x then
begin
vt:=j;
inc(d);
b[d]:=vt;
s:=0;
end;
end;
if s=0 then
begin
b[d]:=n;
break;
end;
end;
writeln(f2,x);
writeln(f2,d);
for i:=1 to d do
write(f2,b[i],' ');
close(f1);
close(f2);
end.
Mình thử trả lời các bạn xem có đúng ko nha!!!
__________
program CP;
var scs,tong,m,i,z,k:longint;
A:array[1..10000000] of longint;
f:text;
begin
assign(f, 'CP.INP');
reset(f);
readln(f,m);
for i:=1 to m do read(f,A[i]);
close(f);
tong:=0;
scs:=0;
for z:=1 to m do
for k:=1 to A[z] do
if (k*k=A[z]) then
begin
scs:=scs+1;
tong:=tong+A[z];
end;
assign(f, 'CP.OUT');
rewrite(f);
if (scs<>0) then writeln(f, tong) else writeln(f, '0');
close(f);
end.
1: while pos(#32,s)>0 do delete(s,pos(#32,s),1);
Còn kiểm tra palindom thì đầu tiên cho kiểm tra là true, chạy for từ đầu đến length div 2, nếu s[i] khác s[length-i+1] thì kiểm tra false, còn lại tự biết.
2: Các trường hợp sai
-Không có chấm hoặc nhiều hơn 1 chấm.
-1 trong 2 bên dấu chấm không phải là số hoặc 1 trong 2 bên không có số.
-dấu + hoặc - đặt sai vị trí (ko đặt đầu xâu, bên phải chữ e, giữa số mũ).
-Xuất hiện 1 kí tự khác e, +, -, số, khoảng cách.
-Xuất hiện khoảng cách giữa xâu
(Mình nghĩ vậy)
3. S:=lowercase(s); đưa s về xâu thường.
Chèn khoảng cách (#32) vô đầu xâu cho dễ xử lí: gọi s là xâu nhập vào, i là biến chạy, nếu s[i+1] không phải khoảng cách và s[i] là khoảng cách thì tăng đếm và upcase s[i+1] lên, đếm là số in ra
Cuối cùng là xóa khoảng cách thừa bằng:
While pos(#32#32,s)>0 do deletes(s,pos(#32#33,s),1);
If s[1]=#32 then delete(s,1,1);
If s[length(s)]=#32 then delete(s,length(s),1);
(#32 là dấu khoảng cách theo bảng mã ascii)
Bài test cho các bạn tham gia tích cực tại môn Tin học .
♛๖ۣۜEɗωαɾɗ ๖ۣۜNεω๖ۣۜGαтε♛ ; Nguyễn Lê Phước Thịnh ; @Luân Trần
const fi='tvh.inp';
fo='tvh.out';
var n,d,dem,sl,s2cs,s3cs,s4cs,s5cs,s6cs,s7cs,k,i,d1:longint;
st,st1,stk:string;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n,k);
str(n,st);
d:=length(st);
case d of
1: write(9);
2: begin
sl:=n-9;
dem:=9+sl*2;
end;
3: begin
s2cs:=(99-10)+1;
s3cs:=n-99;
dem:=9+s2cs*2+s3cs*3;
end;
4: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=n-999;
dem:=9+s2cs*2+s3cs*3+s4cs*4;
end;
5: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=n-9999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5;
end;
6: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=n-99999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6;
end;
7: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=(999999-1000000)+1;
s7cs:=n-999999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6+s7cs*7;
end;
end;
if k<=dem then
begin
i:=1;
d1:=0;
repeat
str(i,st1);
d1:=d1+length(st1);
i:=i+1;
until d1>=k;
stk:=st1[length(st1)-(d1-k)];
writeln(f2,stk);
end;
close(f1);
close(f2);
end.