Tìm chữ số đầu tiên của số nguyên n trong Python và C++
Trong lập trình, để tìm chữ số đầu tiên của một số nguyên n, ta thường sử dụng một vòng lặp hoặc một phép chia cho 10 lặp đi lặp lại. Bắt đầu bằng việc đảm bảo n là số không âm (bằng cách sử dụng hàm abs()
), sau đó sử dụng một vòng lặp while
để liên tục chia n cho 10 và loại bỏ chữ số cuối cùng cho đến khi n không còn lớn hơn hoặc bằng 10. Khi vòng lặp kết thúc, n sẽ chỉ còn chứa chữ số đầu tiên của số ban đầu, và bạn có thể sử dụng giá trị này cho mục đích mong muốn. Quá trình này giúp xác định một cách đơn giản và hiệu quả chữ số đầu tiên của số nguyên n
Tìm chữ số đầu tiên của số nguyên n trong Python
Cách 1: Chuyển thành chuỗi
n = int(input("Nhập số nguyên n: ")) # Nhập số nguyên từ người dùng # Chuyển đổi số nguyên thành chuỗi n_str = str(abs(n)) # Sử dụng abs() để đảm bảo số không âm if len(n_str) > 0: first_digit = n_str[0] # Lấy chữ số đầu tiên print("Chữ số đầu tiên của số nguyên n là:", first_digit) else: print("Không có chữ số nào trong số nguyên n.")
Trong mã này:
- Bạn nhập số nguyên
n
từ người dùng. - Chuyển đổi giá trị
n
thành một chuỗin_str
bằng cách sử dụngstr()
và đảm bảo rằng nó là số không âm bằng cách sử dụngabs()
. - Kiểm tra xem chuỗi
n_str
có chứa ít nhất một ký tự (chữ số) không. Nếu có, bạn lấy ký tự đầu tiên của chuỗi để tìm chữ số đầu tiên. - In ra chữ số đầu tiên hoặc thông báo nếu không có chữ số nào trong số nguyên
n
.
Cách 2: Không chuyển thành chuỗi
n = int(input("Nhập số nguyên n: ")) # Nhập số nguyên từ người dùng # Lặp để tìm chữ số đầu tiên while n >= 10: n //= 10 # Loại bỏ chữ số cuối cùng bằng cách chia cho 10 print("Chữ số đầu tiên của số nguyên n là:", abs(n))
Trong mã này:
- Bạn nhập số nguyên
n
từ người dùng. - Bạn sử dụng một vòng lặp
while
để loại bỏ lần lượt các chữ số ở cuối củan
bằng cách chian
cho 10 cho đến khin
không còn lớn hơn hoặc bằng 10. - Sau khi vòng lặp kết thúc,
n
sẽ chỉ còn chứa chữ số đầu tiên của số ban đầu. Chú ý rằng chúng ta sử dụngabs()
để đảm bảo rằng giá trị là dương, bất kển
ban đầu là âm hay dương. - In ra chữ số đầu tiên.
Tìm chữ số đầu tiên của số nguyên n trong C++
#include <iostream> #include <cmath> // Sử dụng thư viện cmath để làm việc với hàm abs() using namespace std; int main() { int n; cout << "Nhập số nguyên n: "; cin >> n; // Nhập số nguyên từ người dùng // Đảm bảo n là số không âm bằng cách sử dụng hàm abs() n = abs(n); int first_digit; // Lặp để tìm chữ số đầu tiên while (n >= 10) { n /= 10; // Loại bỏ chữ số cuối cùng bằng cách chia cho 10 } first_digit = n; // Lưu chữ số đầu tiên cout << "Chữ số đầu tiên của số nguyên n là: " << first_digit << endl; return 0; }
Trong chương trình này:
- Chúng ta sử dụng thư viện
iostream
để nhập và xuất dữ liệu vàcmath
để sử dụng hàmabs()
để đảm bảo rằngn
là số không âm. - Chúng ta nhập số nguyên
n
từ người dùng bằngcin
. - Sử dụng một vòng lặp
while
để loại bỏ lần lượt các chữ số ở cuối củan
bằng cách chian
cho 10 cho đến khin
không còn lớn hơn hoặc bằng 10. - Cuối cùng, chữ số đầu tiên được lưu trong biến
first_digit
và được in ra bằngcout
.