vết hàm chuyển 1 số thập phân thành 1 số nhị phân,sau đó đảo ngược số đó và xét số đảo ngược có = số đó không
Còn bài nữa nà...sao ko thấy ai giúp hết...![]()
![]()
Cho số tự nhiên m. Hãy tìm số tự nhiên n mà trong cách viết n theo hệ nhị phân cũng chính là số tự nhiên m trong hệ nhị phân đc viết theo thứ tự ngược lại.
VD: m=6=110 thì n=3 =011
vết hàm chuyển 1 số thập phân thành 1 số nhị phân,sau đó đảo ngược số đó và xét số đảo ngược có = số đó không
Cũng có một cách khác là bạn chia số đó cho 2 lấy số dư vào một mảng, duyệt mảng từ dưới lên số cần tìm làCho số tự nhiên m. Hãy tìm số tự nhiên n mà trong cách viết n theo hệ nhị phân cũng chính là số tự nhiên m trong hệ nhị phân đc viết theo thứ tự ngược lại.
VD: m=6=110 thì n=3 =011
Kiểu như vậy, tốt nhất bạn nên code thử rồi post kết quả lên đây.Code:int n=0;t=1; n=n+a[i]*t; t+=10;
Have fun!
1. Cách của QH với CG là như nhau:
Đây là 1 bài toán trong đề thi hồi học CTDL 1. Nếu nhớ không nhầm thì đề thế này:
Tương tự câu hỏi. Nhưng, tìm tất cả các số n có mã nhị phân giống với m sao khi thực hiện hoán vị.
Từ đó bài này dẫn đến bài toán giải quyết dãy nhị phần hoán vị, từ đó dẫn đến phương pháp sinh.
Bài toán này 1 trong những bài toán tiêu biểu cho giải thuật sinh hay gặp.
Bài của bạn ThaiBoss:
PHP Code:int findN(int m)
{
int a[8];
int n= 0;
int i=0;
while(m!=0)
{
a[i++] = m%2;
m = int(m/2);
}
--i;
while(i>=0)
{
if(1 == a[i])
{
n +=pow(2,8-i) ; // 2^8-i
}
--i;
}
return n;
}
// chưa test nhưng đại loại thế.