ĐÁP ÁN VÒNG 2 CUỘC THI TIN HỌC LẦN 3:Câu 1(2 điểm)uses crt;var a:array[1..100000]of int64;i,n,x,dem:int64;beginclrscr;readln(n,x);for i:=1 to n doread(a[i]);dem:=0;for i:=1 to n doif x=a[i] then inc(dem);writeln(dem);readln;end.Câu 2(2 điểm)uses crt;var n,k,i,dem:int64;a:array[1..1000000]of int64;{-----------------chuong-trinh-con-quick-sort------------------------}procedure qs(d,c:int64);var i,j,x,tam:int64;begini:=d;j:=c;x:=a[(i+j) div 2];repeatwhile a[i]<x doinc(i);while a[j]>x dodec(j);if...
Đọc tiếp
ĐÁP ÁN VÒNG 2 CUỘC THI TIN HỌC LẦN 3:
Câu 1(2 điểm)
uses crt;
var a:array[1..100000]of int64;
i,n,x,dem:int64;
begin
clrscr;
readln(n,x);
for i:=1 to n do
read(a[i]);
dem:=0;
for i:=1 to n do
if x=a[i] then inc(dem);
writeln(dem);
readln;
end.
Câu 2(2 điểm)
uses crt;
var n,k,i,dem:int64;
a:array[1..1000000]of int64;
{-----------------chuong-trinh-con-quick-sort------------------------}
procedure qs(d,c:int64);
var i,j,x,tam:int64;
begin
i:=d;
j:=c;
x:=a[(i+j) div 2];
repeat
while a[i]<x do
inc(i);
while a[j]>x do
dec(j);
if i<=j then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
inc(i);
dec(j);
end;
until i>j;
if d<j then qs(d,j);
if i<c then qs(i,c);
end;
{---------------chuong-trinh-chinh------------------}
begin
clrscr;
readln(n);
for i:=1 to n do
read(a[i]);
qs(1,n);
k:=a[n];
dem:=0;
for i:=1 to n do
if k=a[i] then inc(dem);
writeln(dem);
readln;
end.
Câu 3(2 điểm) Bài làm của bạn Hưng Nguyễn Thái
var a,b,c:int64;
begin
read(a,b,c);
if (a+b <= c) and ((c-a-b) mod 2 = 0) then write('Yes')
else write('No');
end.
Câu 4(6 điểm) Bài làm của bạn Quý Lương
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
ios_base::sync_with_stdio(false); cout.tie(NULL);
ll n, k;
cin>>n>>k;
ll d=__gcd(n, k);
n/=d; k/=d;
cout << n/k << '.';
n=n%k*10;
ll s=0, t=k;
for (s; t%2==0 or t%5==0; s++) {
if (t%2==0) t/=2;
if (t%5==0) t/=5;
}
for (s; s>0; s--) {
cout << n/k;
n=(n%k) * 10;
}
if (t==1) cout << "(0)";
else {
ll r =10%t;
for (s=1; r!=1; s++) r=r*10 % t;
cout << '(';
for (s; s>0; s--) {
cout << n/k;
n=(n%k)*10;
}
cout << ')';
}
}
Câu 5(8 điểm) Bài làm của bạn Trần Nguyễn Đăng Dương
#include <bits/stdc++.h>
using namespace std;
int n;
long long a[100001];
long long f[100001];
void ans(long long x)
{
int dem=1;
for (long long i=2;i*i<=x;i++)
if (x%i==0)
{
f[dem]=i;
if (i!=sqrt(x))
{
f[dem+1]=x/i; dem+=2;
}
else dem++;
}
f[dem]=x;
sort(f+1,f+dem);
for (int i=1;i<=dem;i++) cout<<f[i]<<endl;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cin>>n;
for (int i=1;i<=n;i++) cin>>a[i];
long long gcd=abs(a[2]-a[1]);
for (int i=3;i<=n;i++)
gcd=__gcd(gcd,abs(a[i]-a[i-1]));
ans(gcd);
}
a)
uses crt; ----> Khai báo thư viện có tên crt
var n, i:integer; ----> Khai báo biến n và biến i thuộc kiểu dữ liệu số nguyên (integer)
begin ----> Bắt đầu chương trình chính
clrscr; ----> Xóa toàn bộ màn hình
write('Nhap vao mot so nguyen:'); ----> In ra màn hình : Nhap vao mot so nguyen
readln(n); ----> Nhập giá trị cho biến n
if n<=1 then writeln(n,' khong la so nguyen to')
----> Kiểm tra điều kiện n<=1 . Nếu đúng in ra màn hình : (biến n được nhập) khong la so nguyen to
else ----> Điều kiện n<=1 là sai thì rẽ nhánh (ngược lại)
begin ----> Khởi tạo tạo khối chương trình phụ
i:=2; ----> Gán biến i có giá trị bằng 2
while (n mod i<>0) do i:=i+1; ----> Chừng nào n mod i còn khác 0 thì tăng biến i lên 1 đơn vị
if i=n then writeln(n,' la so nguyen to') ----> Kiểm tra điều kiện, nếu i=n thì in ra màn hình : (biến n được nhập từ bàn phím) la so nguyen to
else writeln(n,' khong la so nguyen to,); ----> Ngược lại (điều kiện là sai n<>i ) thì in ra màn hình : (biến n được nhập từ bàn phím) khong la so nguyen to
end; ----> Kết thúc khối chương trình phụ
readln ----> Đọc ra màn hình
end. ----> Kết thúc chương trình chính
b) Khi nhập vào số 9 thì chương trình sẽ xuất thông báo : 9 khong la so nguyen to
c) Khi nhập vào số 131 thì chương trình sẽ xuất thông báo : 131 la so nguyen to