30/09/2018, 21:07

Nhờ giúp đỡ C++

Cho mình hỏi là trong bài viết hàm chuyển hệ thập phân sang nhị phân, sau khi chia lấy phần dư và lưu vào trong mảng thì làm sao đảo ngược mảng ấy lại để được dạng nhị phân, mảng không biết trước được bao nhiêu phần tử.Ai có cách giải khác cho mình tham khảo với nhé.Cám ơn.

Trương Quang Hiếu viết 23:09 ngày 30/09/2018

Basic 1 chút thì bạn làm 1 biến đếm trong lúc lưu các phần dư vào mảng. Sau đó thực hiện chuyển lại.

Xuân Hòa viết 23:22 ngày 30/09/2018

Sao bạn không dùng stack nhỉ?

Phạm Minh Anh Hữu viết 23:11 ngày 30/09/2018

Hình như bài này anh Sơn ĐT hd là sd đệ quy hay sao ý bạn.

*grab popcorn* viết 23:21 ngày 30/09/2018

Cách 2 là dùng chuỗi
Truyền vảo 1 mảng chuỗi
Khi lưu tới phần tử cuối cùng.
Thì phần tử cuối + 1 = 0
-> sẽ lấy được strlen của chuỗi.

Nguyễn Thiên Nhã viết 23:10 ngày 30/09/2018

mình dùng biến đếm lưu số phần tử của mảng.Stack mình chưa học tới. Cảm ơn mọi người nhé

Mario viết 23:12 ngày 30/09/2018

Hoặc là mình áp dụng như vầy đây nè:
Số ký số cần thiết để biểu diễn nhị phân của số N (thập phân) là:
(logarithm cơ số 2 của N) +1
Trong thự viện math.h không có hàm tính logarithm cơ số 2 nhưng mà có logarithm cơ số e (hàm log() ), mình tính theo công thức này:
Số phần tử mảng kết quả = (logarithm cơ số 2 của N) +1 = log(N) / log(2) +1

(nhớ ép kiểu nha!)

Người bí ẩn viết 23:19 ngày 30/09/2018

Tham khảo Topic này của mình nhé: Không tìm được lỗi trong chương trình chuyển đổi số thập phân sang số nhị phân và ngược lại

Nói chung chuyển số thập phân sang nhị phân thì đặt 1 vòng lặp while, trong vòng lặp thì %2 và /2 rồi lưu chữ số ấy vào mảng, đặt thêm 1 biến phụ, cứ sau mỗi lần đưa chữ số vào mảng, tăng biến phụ rồi kết thúc vòng lặp sang vòng lặp mới.

Sau đó dùng vòng lặp for rồi đảo ngược cái mảng lại bằng cách: for(int i = bienphu - 1; i >= 0; i--) .

Bài liên quan
0