Lấy lại giá trị n trước khi đưa vào vòng lặp

Mình mới nhập môn C++, giờ đang kẹt phần vòng lặp for mn cho mình hỏi là làm sao để làm mới giá trị đã nhập sau khi qua một vòng lặp được thực hiện, vd như:

cin >> n;
while(n)
{
  n/=10;
}

lúc này mình muốn lấy lại giá trị n ban đầu đã nhập để đưa vào một vòng lặp với điều kiện khác mà kết quả n cứ ra 0 vì sau vòng while n đã bị chia đến hết :((
mn giúp mình vs, mình xin cảm ơn

Bạn tạo 1 biến lưu lại giá trị của n trước khi lặp là được mà.

1 Like

bài tập này của mình kiểu như n nó phải linh động ý, đề bài là nhập 1 số nguyên n có số chữ số bất kì

  1. Đảo ngược chữ số của n
  2. Đếm số chữ số có trong n
  3. Nhập 1 vị trí bất kì và in giá trị chữ số tương ứng trong số ban đầu nhập

mình làm đc ý 1 vs 2 mà ý 3 biết hướng nhưng khi dùng vòng lặp mới có đk khác thì k xử lý đc giá trị n về như bđ :((

Mình nghĩ bạn nên viết 1 hàm đảo ngược chữ số của n á.

bài này mình chỉ đc dùng kiến thức của for while để giải quyết vì yêu cầu của người ra đề nên cũng k tách code nhỏ ra thành hàm đc :((

Bạn có thể đọc n dưới dạng 1 string, có thể dễ dàng đảo ngược nó và lấy chữ số ở 1 vị trí bất kỳ.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?