# 2008 -2009
bài 2:
Một số nguyên dương gọi là đối xứng thập phân nếu viết các chữ số của nó theo thứ tự ngược lại thu được chính số đó, chẳng hạn 121 là số đối xứng thập phân. Một số nguyên dương được gọi là đối xứng nhị phân nếu biểu diễn số đó trong hệ nhị phân và viết các chữ số trong hệ nhị phân của nó theo thứ tự ngược lại thu được chính số đó (trong hệ nhị phân), chẳng hạn 21 = 101012 là số đối xứng nhị phân.
Yêu cầu: Hãy liệt kê tất cả các số vừa đối xứng nhị phân vừa đối xứng thập phân trong đoạn [$1; N$]
Dữ liệu vào từ file văn bản BL2.INP:
Số N ($1 ≤ N ≤ 10000$).
Dữ liệu ra ghi ra file văn bản BL2.OUT:
In ra danh sách các số tìm được, giữa 2 số ngăn cách nhau bằng một dấu cách (space).
```python=
import sys
sys.stdin = open('BL2.inp','r')
sys.stdout = open('BL2.out','w')
n = int(input())
def check(n):
n1 = n[::-1]
if n == n1: return True
else: return False
def check_bin(n):
n1 = bin(n)[2 ::]
n2 = n1[::-1]
if n1 == n2: return True
else: return False
for i in range(n):
if check(i) and check_bin(i):
print(i, end = ' ')
```
bài 3:
Cho số nguyên dương $N$ ($N ≤ 100$) và dãy số $A$:$A~1, A~2, ..., A~n$.
Yêu cầu hãy tìm:
- Số hạng âm lớn nhất của dãy và chỉ số của nó;
- Số hạng dương nhỏ nhất của dãy và chỉ số của nó;
- Số lượng số hạng dương liên tiếp nhiều nhất;
- Số lượng số hạng âm liên tiếp có tổng lớn nhất;
Dữ liệu vào từ file văn bản BL3.INP:
- Dòng đầu tiên ghi số N.
- N dòng tiếp theo ghi các số thuộc dãy $A$, theo thứ tự từ $A1$ đến $An$.
Dữ liệu ra ghi ra file văn bản BL3.OUT:
Đưa ra các dòng thông báo theo yêu cầu (Mỗi dòng thông báo được in trên 1 dòng).
(Nếu không có số nào thoả mãn thì cũng đưa ra thông báo: “KHONG CO”).
```python=
import sys
sys.stdin = open('BL3.inp','r')
sys.stdout = open('BL3.out','w')
n = int(input())
a =[]
for _ in range(n):
a.append(int(input()))
mn , mx = min(a) ,max(a)
for i in range(len(a)):
if a[i] > mn and a[i] < 0:
mn = a[i]
if a[i] < mx and a[i] > 0:
mx = a[i]
print(mn , ':' , a.index(mn) + 1)
print(mx ,':' , a.index(mx) + 1)
mxn , d = 0 , 0
for i in range(len(a)):
if a[i] <= 0:
if d >= mxn:
mxn = d
d = 0
else : d += 1
if mxn > 0:
print(mxn)
else: print('Khong co')
mnn , d = 0 , 0
for i in range(len(a)):
if a[i] >= 0:
if d >= mnn:
mnn = d
d = 0
else: d += 1
if mnn > 0 : print(mnn)
else:print('Khong co')
```
bài 4:
Cho số nguyên $N$ và một xâu ký tự chứa các giá trị số.
Yêu cầu: Tính tích của số nguyên $N$ và giá trị của xâu dữ liệu số.
Dữ liệu vào từ file văn bản BL4.INP:
- Dòng đầu tiên chứa số nguyên $N$($1 ≤ N ≤ 9$).
- Dòng thứ hai chứa xâu $S$ ($S$ có độ dài tối thiểu là 10, là xâu chỉ chứa các giá trị số từ 0 đến 9)
Dữ liệu ra ghi ra file văn bản BL4.OUT:
- In ra kết quả của phép nhân.
```python=
import sys
sys.stdin = open('BL4.inp','r')
sys.stdout = open('BL4.out','w')
n = int(input())
s = input()
print(n * int(s))