-
-
-
- Lớp 2
- Tự nhiên và xã hội
- Tiếng việt
- Toán học
- Tiếng Anh
- Đạo đức
- Âm nhạc
- Mỹ thuật
- HĐ trải nghiệm, hướng nghiệp
- Lớp 4
- Khoa học
- Tiếng việt
- Toán học
- Đạo đức
- Tiếng Anh
- Lịch sử và Địa lí
- Công nghệ
- HĐ trải nghiệm, hướng nghiệp
- GD Thể chất
- Âm nhạc
- Lớp 5
- Khoa học
- Toán học
- Tiếng việt
- Tin học
- Tiếng Anh
- Đạo đức
- Lịch sử và Địa lí
- HĐ trải nghiệm, hướng nghiệp
- Lớp 6
- Công nghệ
- Tin học
- Lịch sử và Địa lí
- GDCD
- Ngữ văn
- Toán học
- Khoa học tự nhiên
- Tiếng Anh
- Âm nhạc
- Mỹ thuật
- HĐ trải nghiệm, hướng nghiệp
- Lớp 7
- Tiếng Anh
- GDCD
- Toán học
- Công nghệ
- Tin học
- Ngữ văn
- Lịch sử và Địa lí
- Khoa học tự nhiên
- HĐ trải nghiệm, hướng nghiệp
- Âm nhạc
- Lớp 8
- Tiếng Anh
- GDCD
- Toán học
- Công nghệ
- Ngữ văn
- Khoa học tự nhiên
- Lịch sử và Địa lí
- HĐ trải nghiệm, hướng nghiệp
- GD Thể chất
- Âm nhạc
- Lớp 9
- Tiếng Anh
- GDCD
- Toán học
- Công nghệ
- Tin học
- Ngữ văn
- Khoa học tự nhiên
- HĐ trải nghiệm, hướng nghiệp
- Lịch sử và Địa lí
- Lớp 10
- Hóa học
- Tiếng Anh
- Lịch sử
- Sinh học
- Địa lí
- Vật lí
- Tin học
- Toán học
- GD kinh tế và pháp luật
- Công nghệ
- Ngữ văn
- HĐ trải nghiệm, hướng nghiệp
- GD Thể chất
- GD Quốc phòng và An ninh
- Lớp 11
- Hóa học
- Tiếng Anh
- Vật lí
- Tin học
- Toán học
- Địa lí
- Công nghệ
- Lịch sử
- Ngữ văn
- Sinh học
- GD Thể chất
- GD Quốc phòng và An ninh
- GD kinh tế và pháp luật
- HĐ trải nghiệm, hướng nghiệp
-
-
- KHÁM PHÁ
-
-
-
-
-
-
-
-
- FAVORITES
-
- Hỏi đáp
- Tin Học
- Lớp 9
- lập trình c++ Trong toán học thì việc tìm chữ số tận cùng là một chuyên đề hay và khó. Hôm nay thầy giáo tin học cho các bạn lập trình giải bài toán sau: Cho số nguyên không âm n (n ≤ 1018). Hãy tìm chữ số tận cùng của 2^n Dữ liệu
lập trình c++ Trong toán học thì việc tìm chữ số tận cùng là một chuyên đề hay và khó. Hôm nay thầy giáo tin học cho các bạn lập trình giải bài toán sau: Cho số nguyên không âm n (n ≤ 1018). Hãy tìm chữ số tận cùng của 2^n Dữ liệu
lập trình c++
Trong toán học thì việc tìm chữ số tận cùng là một chuyên đề hay và khó. Hôm
nay thầy giáo tin học cho các bạn lập trình giải bài toán sau:
Cho số nguyên không âm n (n ≤ 1018). Hãy tìm chữ số tận cùng của 2^n
Dữ liệu vào: Ghi số nguyên không âm n.
Dữ liệu ra: Ghi duy nhất chữ số tận cùng của 2^n
Câu trả lời này dùng AI, hãy kiểm tra lại trước khi sử dụng
Để tìm chữ số tận cùng của 2^n cho một số nguyên không âm n, chúng ta cần phân tích một chút về cách tính toán và các quy luật của số dư.
Chữ số tận cùng của một số là số dư khi số đó chia cho 10. Do đó, để tìm chữ số tận cùng của 2^n, chúng ta sẽ tính 2^n mod 10.
Tuy nhiên, với n có thể lớn đến 10^18, việc tính trực tiếp 2^n là không khả thi do kết quả sẽ vượt quá sức chứa của nhiều kiểu dữ liệu trong lập trình. Thay vào đó, chúng ta sẽ sử dụng một số tính chất chu kỳ của các lũy thừa của 2 modulo 10.
Xét các giá trị của 2^n mod 10 cho các giá trị n từ 0 đến 9:
- 2^0 = 1 ⇒ 1 mod 10 = 1
- 2^1 = 2 ⇒ 2 mod 10 = 2
- 2^2 = 4 ⇒ 4 mod 10 = 4
- 2^3 = 8 ⇒ 8 mod 10 = 8
- 2^4 = 16 ⇒ 16 mod 10 = 6
- 2^5 = 32 ⇒ 32 mod 10 = 2
- 2^6 = 64 ⇒ 64 mod 10 = 4
- 2^7 = 128 ⇒ 128 mod 10 = 8
- 2^8 = 256 ⇒ 256 mod 10 = 6
- 2^9 = 512 ⇒ 512 mod 10 = 2
Từ đó, ta nhận thấy rằng các chữ số tận cùng của 2^n bắt đầu lặp lại với chu kỳ 4:
- 2^1 mod 10 = 2
- 2^2 mod 10 = 4
- 2^3 mod 10 = 8
- 2^4 mod 10 = 6
Sau 4 giá trị, nó quay lại 2. Chính vì vậy, ta chỉ cần tính n mod 4 để tìm chỉ số của chữ số tận cùng trong chu kỳ này.
Cụ thể:
- Nếu n % 4 == 0 thì chữ số tận cùng là 6
- Nếu n % 4 == 1 thì chữ số tận cùng là 2
- Nếu n % 4 == 2 thì chữ số tận cùng là 4
- Nếu n % 4 == 3 thì chữ số tận cùng là 8
Dựa vào phân tích trên, sau đây là mã C++ để giải bài toán:
```cpp
#include
int main() {
unsigned long long n;
std::cin >> n;
int last_digit;
switch (n % 4) {
case 0:
last_digit = 6;
break;
case 1:
last_digit = 2;
break;
case 2:
last_digit = 4;
break;
case 3:
last_digit = 8;
break;
}
std::cout << last_digit << std::endl;
return 0;
}
```
Giải thích mã:
- Đầu vào là một số nguyên không âm n.
- Chúng ta sử dụng toán tử modulo để tìm n % 4.
- Dựa trên giá trị này, chúng ta quyết định chữ số tận cùng và in ra kết quả.
Bằng cách này, chúng ta có thể tìm được chữ số tận cùng của 2^n cho bất kỳ n nằm trong khoảng cho trước mà không cần phải tính 2^n một cách trực tiếp.
Chữ số tận cùng của một số là số dư khi số đó chia cho 10. Do đó, để tìm chữ số tận cùng của 2^n, chúng ta sẽ tính 2^n mod 10.
Tuy nhiên, với n có thể lớn đến 10^18, việc tính trực tiếp 2^n là không khả thi do kết quả sẽ vượt quá sức chứa của nhiều kiểu dữ liệu trong lập trình. Thay vào đó, chúng ta sẽ sử dụng một số tính chất chu kỳ của các lũy thừa của 2 modulo 10.
Xét các giá trị của 2^n mod 10 cho các giá trị n từ 0 đến 9:
- 2^0 = 1 ⇒ 1 mod 10 = 1
- 2^1 = 2 ⇒ 2 mod 10 = 2
- 2^2 = 4 ⇒ 4 mod 10 = 4
- 2^3 = 8 ⇒ 8 mod 10 = 8
- 2^4 = 16 ⇒ 16 mod 10 = 6
- 2^5 = 32 ⇒ 32 mod 10 = 2
- 2^6 = 64 ⇒ 64 mod 10 = 4
- 2^7 = 128 ⇒ 128 mod 10 = 8
- 2^8 = 256 ⇒ 256 mod 10 = 6
- 2^9 = 512 ⇒ 512 mod 10 = 2
Từ đó, ta nhận thấy rằng các chữ số tận cùng của 2^n bắt đầu lặp lại với chu kỳ 4:
- 2^1 mod 10 = 2
- 2^2 mod 10 = 4
- 2^3 mod 10 = 8
- 2^4 mod 10 = 6
Sau 4 giá trị, nó quay lại 2. Chính vì vậy, ta chỉ cần tính n mod 4 để tìm chỉ số của chữ số tận cùng trong chu kỳ này.
Cụ thể:
- Nếu n % 4 == 0 thì chữ số tận cùng là 6
- Nếu n % 4 == 1 thì chữ số tận cùng là 2
- Nếu n % 4 == 2 thì chữ số tận cùng là 4
- Nếu n % 4 == 3 thì chữ số tận cùng là 8
Dựa vào phân tích trên, sau đây là mã C++ để giải bài toán:
```cpp
#include
int main() {
unsigned long long n;
std::cin >> n;
int last_digit;
switch (n % 4) {
case 0:
last_digit = 6;
break;
case 1:
last_digit = 2;
break;
case 2:
last_digit = 4;
break;
case 3:
last_digit = 8;
break;
}
std::cout << last_digit << std::endl;
return 0;
}
```
Giải thích mã:
- Đầu vào là một số nguyên không âm n.
- Chúng ta sử dụng toán tử modulo để tìm n % 4.
- Dựa trên giá trị này, chúng ta quyết định chữ số tận cùng và in ra kết quả.
Bằng cách này, chúng ta có thể tìm được chữ số tận cùng của 2^n cho bất kỳ n nằm trong khoảng cho trước mà không cần phải tính 2^n một cách trực tiếp.
Đăng phản hồi
© 2025 Học Tốt Online - Chia Sẻ Tài Liệu Học Tập và Giải Bài Tập Miễn Phí Vietnamese