Luyện tập

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Hình chữ nhật dấu sao 100 (p) 1.0s 256M
2 Thứ hạng 100 (p) 1.0s 256M
3 Phép toán logic 2 100 (p) 1.0s 64M
4 Kéo búa bao 100 (p) 1.0s 256M
5 Các phép chia 100 (p) 1.0s 256M
6 Bảng số tự nhiên 3 100 (p) 1.0s 640M
7 Tính trung bình cộng 100 (p) 1.0s 1G
8 Kiểm tra năm nhuận 100 (p) 1.0s 256M
9 Xếp loại 100 (p) 1.0s 256M
10 Tổng lẻ 100 (p) 1.0s 640M
11 Số lớn thứ nhì 100 (p) 1.0s 256M
12 Tính tổng #4 100 (p) 1.0s 256M
13 Tổng đan xen 100 (p) 1.0s 1G
14 Hình tam giác dấu sao 100 (p) 1.0s 256M
15 Tổng chữ số 100 (p) 1.0s 256M
16 Tổng nguyên tố 100 (p) 1.0s 256M
17 In bảng cửu chương 100 (p) 1.0s 256M
18 Đếm số 100 (p) 1.0s 256M
19 Biến đổi về 1 100 (p) 1.0s 256M

1. Hình chữ nhật dấu sao

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hãy in ra hình chữ nhật gồm các dấu sao (*) theo mẫu dưới đây.

Input

  • Bài tập này không có dữ liệu nhập vào.

Output

  • In ra hình chữ nhật kích thước \(4 \times 15\) gồm các dấu sao như mẫu.

Example

Test 1

Input
Output
***************
***************
***************
***************

2. Thứ hạng

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bạn được cho bốn số nguyên không âm phân biệt \(a,b,c,d\).

Hỏi số \(a\) là số lớn thứ mấy trong bốn số?

Input

  • Một dòng chứa bốn số nguyên \(a,b,c,d\) (\(0 \le a,b,c,d \le 10^4\)).

Output

  • Đưa ra một số nguyên duy nhất là kết quả bài toán.

Example

Test 1
Input
3 4 2 1
Output
2

3. Phép toán logic 2

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 64M Input: bàn phím Output: màn hình

Cho số nguyên \(x\), hãy kiểm tra xem số nguyên \(x\) có nằm giữa \(A\) và \(B\) không . Nếu đúng thì in ra Yes, ngược lại in ra No

Input

  • Dòng 1 nhập số nguyên \(x\)
  • Dòng 2 nhập số nguyên \(A\)
  • Dòng 3 nhập số nguyên \(B\)

Output

  • Theo yêu cầu đề bài

Example

Test 1

Input
3
5
1
Output
Yes

Test 2

Input
3
5
7
Output
No

4. Kéo búa bao

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Trò chơi kéo búa bao có quy tắc như sau:

  1. Búa thắng Kéo.
  2. Kéo thắng Bao.
  3. Bao thắng Búa.

Cho hai số nguyên \(a\) và \(b\) lần lượt là trạng thái ra chiêu của người chơi \(A\) và người chơi \(B\). Các giá trị tương ứng là:

  • \(1\): Búa
  • \(2\): Kéo
  • \(3\): Bao

Hãy xác định kết quả của trò chơi.

Input

  • Một dòng duy nhất chứa hai số nguyên \(a\) và \(b\) (\(1 \le a, b \le 3\)).

Output

  • In ra A nếu người chơi \(A\) thắng.
  • In ra B nếu người chơi \(B\) thắng.
  • In ra NA nếu hai người hòa nhau.

Example

Test 1

Input
1 2
Output
A
Note

Người chơi \(A\) ra Búa (\(1\)), người chơi \(B\) ra Kéo (\(2\)). Búa thắng Kéo nên \(A\) thắng.

Test 2

Input
3 3
Output
NA
Note

Cả hai người cùng ra Bao (\(3\)) nên kết quả hòa.

Test 3

Input
2 1
Output
B
Note

Người chơi \(A\) ra Kéo (\(2\)), người chơi \(B\) ra Búa (\(1\)). Búa thắng Kéo nên \(B\) thắng.

5. Các phép chia

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nam mới học được 3 loại phép chia khác nhau. Với hai số nguyên dương \(a, b\) trong tay, Nam đang muốn tính các phép:

  • Phép chia.
  • Phép chia lấy phần nguyên.
  • Phép chia lấy phần dư (%).

Input

  • Một dòng duy nhất chứa hai số nguyên dương \(a, b\) \((1 \leq a, b \leq 10^9)\).

Output

  • Dòng đầu tiên: Kết quả của phép chia \(a / b\) (lấy chính xác 3 chữ số sau dấu phẩy thập phân).
  • Dòng thứ hai: Kết quả của phép chia lấy phần nguyên của \(a\) cho \(b\).
  • Dòng thứ ba: Kết quả của phép chia lấy phần dư của \(a\) cho \(b\).

Example

Test 1

Input
19 8
Output
2.375
2
3

6. Bảng số tự nhiên 3

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 640M Input: bàn phím Output: màn hình

Viết chương trình nhập vào một số nguyên dương \(n\) (\(n \leq 100\)). Hãy in ra bảng số có \(n\) dòng, dòng thứ \(i\) in ra \(i\) số tự nhiên liên tiếp bắt đầu từ số \(i\).

Input

  • Nhập số nguyên dương \(n\).

Output

  • Bảng số theo yêu cầu.

Example

Test 1

Input
4 
Output
1 
2 3 
3 4 5 
4 5 6 7

7. Tính trung bình cộng

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Nhập vào một dãy \(N\) số nguyên \(A_{1},A_{2},...,A_{N}\).

Hãy in ra màn hình Trung bình cộng các phần tử âm.

Input

  • Dòng đầu tiên chứa số nguyên \(N\).
  • \(N\) dòng tiếp theo chứa \(N\) số nguyên \(A_{1},A_{2},...,A_{N}\).

Output

  • In ra Trung bình cộng các phần tử âm lấy \(2\) số lẻ sau phần thập phân, nếu trong dãy không có số âm nào thì in ra \(−1\).

Constraints

  • \(1 \leq n \leq 10000\)
  • \(|A_{i}| \leq 10^{9}\)

Example

Test 1

Input
7
7
6
-4 
19 
-22
51 
-82 
Output
-36.00

8. Kiểm tra năm nhuận

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nhập vào một năm \(n\). Hãy kiểm tra xem năm đó có phải là năm nhuận hay không.

Biết rằng, một năm là năm nhuận nếu nó thỏa mãn một trong hai điều kiện sau:

  • Năm đó chia hết cho \(400\).
  • Năm đó chia hết cho \(4\) nhưng không chia hết cho \(100\).

Input

  • Một số nguyên dương \(n\) (\(1 \le n \le 10^9\)) là năm cần kiểm tra.

Output

  • In ra YES nếu năm đó là năm nhuận, ngược lại in ra NO.

Example

Test 1

Input
2024
Output
YES

Test 2

Input
2023
Output
NO

Test 3

Input
2000
Output
YES

Test 4

Input
1900
Output
NO

9. Xếp loại

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Viết chương trình nhập vào điểm trung bình \(GPA\) của một học sinh (\(0 \le GPA \le 100\)). In ra màn hình kết quả xếp loại học lực của học sinh đó dựa trên các tiêu chí sau:

  • \(GPA \ge 90\): Xuat sac
  • \(GPA \ge 80\): Gioi
  • \(GPA \ge 60\): Kha
  • \(GPA \ge 50\): Dat
  • \(GPA < 50\): Chua dat

Input

  • Một số nguyên duy nhất là điểm trung bình \(GPA\) (\(0 \le GPA \le 100\)).

Output

  • Một dòng duy nhất là kết quả xếp loại tương ứng (không có dấu).

Example

Test 1

Input
65
Output
Kha

10. Tổng lẻ

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 640M Input: bàn phím Output: màn hình

Viết chương trình nhập vào một số nguyên dương \(n\). Hãy in ra tổng các số lẻ trong \(n\) số tự nhiên đầu tiên.

Input

  • Một số nguyên dương \(n\).

Output

  • In tổng lẻ của \(n\) số tự nhiên đầu tiên.

Example

Test 1

Input
5
Output
9

Test 1

Input
10
Output
25

11. Số lớn thứ nhì

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nhập vào bốn số nguyên phân biệt \(a, b, c, d\). In ra màn hình số lớn thứ nhì trong bốn số đã nhập.

Input

  • Một dòng duy nhất chứa bốn số nguyên phân biệt \(a, b, c, d\) (giá trị tuyệt đối không quá \(10^9\)).

Output

  • In ra một số nguyên duy nhất là số lớn thứ nhì trong bốn số đã nhập.

Example

Test 1

Input
1 5 3 7
Output
5

Test 2

Input
-10 20 0 15
Output
15

12. Tính tổng #4

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho ma trận \(n*n\), tính tổng các phần tử nằm trên các cột lẻ và hàng lẻ

Input

  • Dòng 1: số \(n\) \((n < 100)\)
  • Các dòng tiếp theo gồm các số mô tả bảng \(n*n\), giá trị tuyệt đối của các số không vượt quá 1000

Output

  • In ra kết quả

Example

Test 1
Input
3
1 2 3
2 3 1
2 3 3
Output
9

13. Tổng đan xen

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Bé Bi đang dùng casio để tính toán, nhưng chiếc máy tính của Bi hình như đang hỏng. Hãy giúp bé tính toán \(N\) số, được liệt kê sẵn trên giấy. Với số ở vị trí lẻ tính từ đầu dãy, hãy thực hiện phép cộng. Còn nếu số đó ở vị trí chẵn, hãy thực hiện phép trừ.

Input

  • Dòng đầu tiên ghi số \(n\) \((0 < n \leq 10000)\).
  • Dòng thứ 2 ghi \(n\) số nguyên \(a_i\) \((|a_i| \leq 10^5)\).

Output

  • Một dòng duy nhất in ra đáp án.

Example

Test 1
Input
3
1 2 3
Output
2
Note
  • \(1 - 2 + 3 = 2\).

14. Hình tam giác dấu sao

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Đề bài: Viết chương trình nhập vào số nguyên dương \(N\). In ra màn hình họa tiết tam giác kích thước \(N\) như trong ví dụ dưới đây.

Input

  • Một số tự nhiên \(N\)

Output

  • Kết quả

Example

Test 1

Input
5
Output

    *       
   * *
  * * *
 * * * *
* * * * *

15. Tổng chữ số

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nhập vào một số nguyên dương có \(3\) chữ số. Tính tổng các chữ số của số đó.

Input

  • Một số nguyên dương \(n\) có \(3\) chữ số (\(100 \le n \le 999\)).

Output

  • Một số nguyên duy nhất là tổng các chữ số của \(n\).

Example

Test 1

Input
123
Output
6
Note

Tổng các chữ số là \(1 + 2 + 3 = 6\).

Test 2

Input
500
Output
5
Note

Tổng các chữ số là \(5 + 0 + 0 = 5\).

16. Tổng nguyên tố

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Các số nguyên tố nhỏ hơn \(10\) gồm: \(2, 3, 5, 7\). Tổng nguyên tố của một số là tổng các chữ số là số nguyên tố của nó.

Ví dụ: Số \(31012007\) có tổng nguyên tố là: \(3 + 2 + 7 = 12\).

Viết chương trình nhập vào số nguyên \(N\). In ra màn hình tổng nguyên tố của số đó.

Input

  • Một số nguyên dương \(N\) \((1 \leq N \leq 10^{18})\).

Output

  • In ra một số nguyên duy nhất là tổng nguyên tố của số \(N\).

Example

Test 1

Input
31012007
Output
12

17. In bảng cửu chương

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Viết chương trình nhập vào số nguyên \(n\) (\(1 \le n \le 9\)). In ra màn hình bảng cửu chương \(n\) theo dạng sau:

\(n \cdot 1 =\) [kết quả]
\(n \cdot 2 =\) [kết quả]
...
\(n \cdot 10 =\) [kết quả]

Input

  • Một số nguyên duy nhất \(n\) (\(1 \le n \le 9\)).

Output

  • In ra bảng cửu chương của \(n\) từ \(1\) đến \(10\), mỗi phép tính trên một dòng theo định dạng: n * x = res (với \(x\) chạy từ \(1\) đến \(10\) và \(res\) là kết quả của phép nhân).

Example

Test 1

Input
2
Output
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
2 * 10 = 20

Test 2

Input
5
Output
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

18. Đếm số

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một dãy gồm \(n\) số nguyên dương \(A_1,A_2,…,A_n\). (\(N\leq 10^5\),\(A_i\leq 10^9\)) và số \(x\).

Yêu cầu: Hãy đếm số lần xuất hiện của giá trị \(x\) trong mảng \(A\).

Input

  • Dòng đầu chứa số \(n\) và \(x\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(A_1,A_2,…,A_n\).

Output

  • Số lần xuất hiện số \(x\) trong mảng \(A\).

Example

Test 1

Input
6 451
91 451 43 3 451 54
Output
2

19. Biến đổi về 1

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Tí đang học về các phép toán cơ bản trên số nguyên. Hôm nay, thầy giáo giao cho Tí một bài toán thú vị: Cho một số nguyên dương \(N\), Tí cần thực hiện các thao tác sau cho đến khi \(N\) bằng \(1\):

  • Nếu \(N\) là số chẵn: thay \(N\) bằng \(N / 2\).
  • Nếu \(N\) là số lẻ: thay \(N\) bằng \(N - 1\).

Bạn hãy giúp Tí tính xem cần thực hiện bao nhiêu thao tác để đưa \(N\) về giá trị \(1\) nhé!

Input

  • Một số nguyên dương \(N\) duy nhất.

Output

  • Một số nguyên duy nhất là số lượng thao tác cần thực hiện.

Constraints

  • \(1 \le N \le 10^{18}\).

Example

Test 1

Input
3
Output
2
Note
  • Thao tác 1: \(3\) là số lẻ, \(N = 3 - 1 = 2\).
  • Thao tác 2: \(2\) là số chẵn, \(N = 2 / 2 = 1\).
  • Tổng cộng cần \(2\) thao tác.

Test 2

Input
10
Output
4
Note

Các bước biến đổi: \(10 \rightarrow 5 \rightarrow 4 \rightarrow 2 \rightarrow 1\). Tổng cộng \(4\) thao tác.
(Đính chính: \(10 \xrightarrow{chẵn} 5 \xrightarrow{lẻ} 4 \xrightarrow{chẵn} 2 \xrightarrow{chẵn} 1\). Tổng cộng là \(4\) thao tác).

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(N \le 10^6\).
  • Subtask \(2\) (\(40\%\) số điểm): \(N \le 10^{18}\).