Em mới bắt đầu học lập trình ạ, thầy có giao cho em bài tập như sau:
“Viết một chương trình yêu cầu nhập số tự nhiên N (N>0). In ra dãy các chữ số của N theo thứ tự ngược lại.”
Mọi người có thể cho em cách giải đơn giản và kèm giải thích được không ạ? Em cảm ơn nhiều ạ.
In ra dãy các chữ số của N theo thứ tự ngược lại
Hi Hoang
- Cấu trúc dữ liệu. Một số nguyên -> biến kiểu nguyên. Dãy các chữ số -> mảng số nguyên (số phần tử chưa biết nhưng giả định là 100 chữ số). Do giả định có 100 chữ số nên cần thêm một biến nguyên nữa để đánh dấu xem thực tế là dùng bao nhiêu số.
- Cài đặt thuật toán.
2.1 Gán biến số phần tử dùng bằng 0 (chưa dùng số nào). count = 0
2.2 Nhập N. scanf("%d", &n)
2.3 Bạn có thể dùng phép chia lấy dư để tìm chữ số hàng đơn vị. tmp = n % 10
2.4 Gán nó vào mảng. array[cout++] = tmp
2.5 Lặp lại lần nữa khi nào n không còn chữ số nào có nghĩa.
while(n /= 10)
2.6 In các chữ số ra dùng vòng for đơn giản.
P/S Bạn có thể bỏ bước lưu vào mảng đi.
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?