Tự luyện Tuần 1_Tháng 11
Tam phân.
Người ta định nghĩa số Tam phân của số nguyên n là số lần chia 3 số n rồi lấy kết quả của nó tiếp tục chia 3 cho đến khi được kết quả bằng 0 thì dừng. Ví dụ với số 55 ta có:
- Lần chia thứ nhất cho kết quả 18.
- Lần chia thứ hai cho kết quả 6.
- Lần chia thứ ba cho kết quả 2 chia cho 3 bằng 0.
Như vậy số Tam phân của số 54 là 3.
Yêu cầu: Cho số nguyên dương n (n≤10^19). Hãy tìm số Tam phân của n.
Dữ liệu vào: nhập số nguyên dương n.
Kết quả: in kết quả của bài toán.
Ví dụ:
TAMPHAN.INP
55
TAMPHAN.OUT
3
Điểm: 2
Thêm chữ số
Cho số nguyên dương n hãy thêm vào một chữ số trước chữ số đầu tiên của số n sao cho số mới tạo thành là một số chia hết cho 3.
Dữ liệu vào: nhập số nguyên dương n (n≤10^19 ).
Kết quả: in chữ số được thêm vào.
Ví dụ:
THEMCHUSO.INP
534
THEMCHUSO.OUT
3
Dãy Fibonacci
Dãy số Fibonacci được định nghĩa như sau:
f(n)= 0 nếu n=0
f(n)= x nếu n=1
f(n)= f(n-1)+f(n-2) nếu n>1
Yêu cầu: Cho biết n và f(n). Hãy tìm f(1).
Dữ liệu vào: gồm hai số nguyên n và f(n) (2≤n≤1000,0≤f(n)≤10^18)
Kết quả: in một số nguyên duy nhất là f(1)
Ví dụ:
XFIBO.INP
6 8
XFIBO.OUT
1
Điểm: 3
Rút tiền ATM
Có một máy rút tiền tự động ATM, trong máy đang có tổng cộng K đơn vị tiền. Có N người (được đánh số thứ tự từ 1 đến N ) xếp hàng để rút tiền tại máy ATM, người thứ i (i=1…N) cần rút A_i đơn vị tiền. Mọi người lần lượt đi vào rút tiền, theo thứ tự chỉ số tăng dần (từ 1 đến N). Khi có một người vào rút tiền, máy ATM sẽ trả lại đúng số tiền mà người đó cần rút nếu máy có tối thiểu số tiền của người cần rút, trong trường hợp ngược lại máy sẽ báo lỗi và không đưa tiền. Sau khi rút tiền (cho dù có nhận được tiền hay không) người đó ngay lập tức rời khỏi hàng để người tiếp theo vào rút tiền.
Yêu cầu:
Đối với mỗi người, hãy cho biết người đó nhận được số tiền cần rút hay không? Và số tiền còn lại trong máy là bao nhiêu?
Dữ liệu vào: gồm:
Dòng đầu ghi hai số số nguyên dương n,k (n<10^5,k<10^9).
Dòng thứ hai ghi n số nguyên không dương A1,A2,…,A_n có giá trị không vượt quá 10^9
Kết quả: gồm:
Dòng đầu ghi N số 0 hoặc 1. Nếu người thứ i(i=1…N) rút được thì ghi số 1, ngược lại ghi số 0.
Dòng thứ hai ghi số tiền còn lại trong máy ATM sau khi N người rút.
Ví dụ:
RATM.INP
5 10
3 5 3 2 1
RATM.OUT
11010
0