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.
const fi='test.inp';
fo='test.out';
var
f:text;
n,i,j,t:longint;
a:array[1..100] of longint;
b:array[1..1000000000] of boolean;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n);
for i:= 1 to n do
read(f,a[i]);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
for i:= 1 to n do
begin
b[a[i]]:=true;
t:=a[i];
for j:= i+1 to n do
begin
b[a[j]] := true;
b[a[i]+a[j]]:= true;
t:=t+a[j];
b[t]:=true;
end;
end;
t:=1;
while b[t] = true do
inc(t);
write(f,t);
close(f);
end;
BEGIN
ip;
out;
END.
Dưới đây là một ví dụ về cách giải quyết bài toán này bằng ngôn ngữ Pascal:
function isPalindrome(s: string): boolean; var i, n: integer; begin n := Length(s); for i := 1 to n div 2 do begin if s[i] <> s[n - i + 1] then begin Result := false; Exit; end; end; Result := true; end; function countSuperPalindromes(s: string): integer; var i, j, n: integer; subStr: string; begin n := Length(s); Result := 0; // Đếm số xâu con đối xứng for i := 1 to n do begin subStr := ''; for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; // Đếm số xâu con siêu đối xứng for i := 1 to n - 1 do begin subStr := ''; for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; end; var s: string; begin s := 'ababcb'; writeln(countSuperPalindromes(s)); end.Kết quả của ví dụ trên sẽ là 3, tương ứng với 3 xâu con siêu đối xứng của xâu "ababcb" là "aba", "bcb", và "ababcb".
Lưu ý rằng đây chỉ là một cách giải quyết bài toán và có thể tồn tại các cách giải khác.
#code này là code python để tham khảo, biết lệnh mod(chia lấy dư) và div(chia lấy phần nguyên) trong pascal là dùng được def main(): n = int(input().strip()) stt = 0 if n % 100 ==0: #chia lấy dư cho 100, nếu dư thì k chạy, trả về -1 stt+=n//10000 #Chia số tiền cho 10000 và lấy phần nguyên n = n%10000 #bắt đầu chia lấy dư để tính số tiền còn lại phải đổi #làm tương tự với các mệnh giá còn lại stt+=n//5000 n = n%5000 stt+=n//2000 n = n%2000 stt+=n//1000 n = n%1000 stt+=n//500 n = n%500 stt+=n//200 n = n%200 stt+=n//100 n = n%100 print(stt)
main()
#code này là code python để tham khảo, biết lệnh mod(chia lấy dư) và div(chia lấy phần nguyên) trong pascal là dùng được
def main():
n = int(input().strip())
stt = 0
if n % 100 ==0: #chia lấy dư cho 100, nếu dư thì k chạy, trả về -1
stt+=n//10000 #Chia số tiền cho 10000 và lấy phần nguyên
n = n%10000 #bắt đầu chia lấy dư để tính số tiền còn lại phải đổi
#làm tương tự với các mệnh giá còn lại
stt+=n//5000
n = n%5000
stt+=n//2000
n = n%2000
stt+=n//1000
n = n%1000
stt+=n//500
n = n%500
stt+=n//200
n = n%200
stt+=n//100
n = n%100
else: stt = -1
print(stt)