30/09/2018, 17:09

Giúp thuật toán tìm chu kỳ của phân sô

Ai có ý tưởng hướng dẫn em với

Minh Hoàng viết 19:12 ngày 30/09/2018

chu kì của phân số?
bạn cho ví dụ được không?

*grab popcorn* viết 19:10 ngày 30/09/2018

Nhớ 1 topic trên vnz đã nói về vần đề này. Cách làm như sau:

Dùng phép chia như học ở c1. Tạo 1 mảng du và thuong.
Chia khi nào dư được lặp lại thì thôi.

Ví dụ: 1/3 = 0.(3)
1/3 = 0 dư 1 -> mảng dư[1] thương lúc này chưa ở phần thập phân nên ko lưu
10/3 = 3 dư 1 ->đẩy số 3 vào mẩng thương, kt xem số 1 có mặt trong mang dư chưa.
-> thấy là đã xuất hiện -> chu kỳ của 1/3 = 3

Ví dụ khác: 1/14=0.0(714285)
1/14 = 0. dư 1 -> du[1] thuong[]
10/14 = 0 du 10 -> du[1,10], thuong[0]
100/14 = 7 du 2 -> du[1,10,2] thuong[0,7]
20/14=1 du 6 -> du[1,10,2,6] thuong[0,7,1]
60/14 = 4 du 4 -> du[1,10,2,6,4] thuong[0,7,1,4]
40/14=2 du 12 -> du[1,10,2,6,4,12] thuong[0,7,1,4,2]
120/14 = 8 du 8 -> du[1,10,2,6,4,12,8] thuong[0,7,1,4,2,8]
80/14=5 du 10 -> lặp lại -> thuong[0,7,1,4,2,8,5]
lặp lại ở vị trí thứ 2. -> chu kỳ bắt đầu từ vị trí thứ 2 trong mảng thuong[]
-> chu kỳ là 714285
phép chia trên là 0.0(714285)

xD chỉ nhớ cách làm là v.

Nguyễn Đức Minh viết 19:25 ngày 30/09/2018

Hà hà…đọc bài này lại nghĩ về bài tập đầu tiên hồi cấp 2 học giải toán trên máy tính Casio.

Gió viết 19:14 ngày 30/09/2018

Cái này mình viết cách đây không lâu. Hàm solve sẽ in ra dạng số thập phân vô hạn tuần hoàn của phân số https://github.com/boconganh/algorithm/blob/master/c/fractions.c

Bài liên quan
0