Viết thuật toán đổi số nguyên N sang hệ nhị phân
Viết thuật toán đổi số nguyên N sang hệ nhị phân
Lấy số n chia lấy dư cho 2, xong rồi lấy cái thương đó chia tiếp cho 2, cho đến khi n=0. Viết cái dãy số dư theo chiều ngược lại, ta được số nhị phân cần tìm
Thế nào là hệ nhị phân ? Cách đổi một số từ hệ nhị phân sang hệ thập phân và đổi một số từ hệ thập phân sang nhị phân ?
Hệ nhị phân (hay hệ đếm cơ số hai) là một hệ đếm dùng hai ký tự để biểu đạt một giá trị số, bằng tổng số các lũy thừa của 2. Hai ký tự đó thường là 0 và 1; chúng thường được dùng để biểu đạt hai giá trị hiệu điện thế tương ứng (có hiệu điện thế, hoặc hiệu điện thế cao là 1 và không có, hoặc thấp là 0). Do có ưu điểm tính toán đơn giản, dễ dàng thực hiện về mặt vật lý, chẳng hạn như trên các mạch điện tử, hệ nhị phân trở thành một phần kiến tạo căn bản trong các máy tính đương thời.
const là một số không thể thay đổi được. Khác với biến, ví dụ const ở trên là 0123456789ABCDEF thì const này không thể thay đổi được, không thể gán alpha = x với x là một số hay một thứ nào khác
Còn bên trên là hàm với cấu trúc void <ten ham> <khai báo dữ liệu nhập vào>, với dạng hàm này sẽ được thực thi trong khi hàm main có lời gọi hàm nó, ví dụ mình sẽ để bên duới.
Nói chung nó chỉ là 1 hàm xử lý dạng hàm gọi hàm, hay hàm chồng hàm, hay có thể gọi là đệ quy.
Đệ quy thì kiến thức rộng lắm, bác đọc thêm về đệ quy để hiểu các thao tác của đệ quy và các bước duyệt điều kiện và lưu vào stack.
còn lời gọi hàm thì sao bác xem ví dụ bên dưới:
void printinbase(long d, short b){ //code in here } int main(){ long a; short b; printinbase(a, b); }
Tất nhiên các hàm dùng dể thực hiện một công việc nào đó nhiều lần, hoặc muốn code rõ ràng thì người ta dùng hàm
Còn các lện cout, cin thì nó cũng giống với lệnh printf hay scanf, tuy nhiên 2 lệnh cout cin nó không xét kiểu dữ liệu mà nó dùng kiểu dữ liệu sẵn có của biến được khai báo.
p/s: hàm main là một hàm đặc biêtk
cho dãy a là dãy gồm N(<=250)số nguyên dương A1...An và số nguyên k hãy tìm kiếm số nguyên k trong dãy a
xác định bài toán
Viết thuật toán tìm kiếm nhị phân cho bài toán
#include <bits/stdc++.h>
using namespace std;
long long i,n,x,k;
int main()
{
cin>>n>>k;
for (i=1; i<=n; i++)
{
cin>>x;
if (x==k) cout<<i<<" ";
}
return 0;
}
S=(14+243)*37:15 hãy tính toán S trên hệ nhị phân rồi đổi sang hệ thập phân và so sánh kết quả ở hệ thập phân
a) Đổi 69 sang hệ nhị phân
b) Đổi 1101001 sang hệ nhị phân
Em hãy thực hiện các yêu cầu sau:
1. Viết mã giả cho thuật toán tìm kiếm nhị phân.
2. Ước lượng số lần thực hiện vòng lặp trong thuật toán tìm kiếm nhị phân.
3. Ước lượng độ phức tạp thời gian của thuật toán tìm kiếm nhị phân.
Sau lần chia đôi đầu tiên, pham vi tìm kiếm còn lại n/2 số, sau khi chia đôi lần thứ hai, dãy còn lại n/4 số, sau khi chia đôi lần thứ dãy còn lại n/8, …sau khi chia đôi lần k dãy còn lại n/2.mũ k. Kết thúc khi 2 mũ k sấp xỉ n.
đổi sang hệ nhị thập phân các số sau 5,6,9,12
các bạn có thể tìm thấy bài này trong sách bài tập toán lớp 6-19
5 = 5 : 2 : 2 : 2 = 101(2)
6 = 6 : 2 : 2 : 2 = 110(2)
9 = 9 : 2 : 2 :2 :2 = 1001(2)
12 = 12 : 2 : 2 : 2 : 2 = 1100(2)
a ) viết các số trong hệ ghi nhị phân sang hệ thập phân
101110(2) ; 101000101 (2)
b ) viết các số sau từ hệ nhị phân sang hệ tam phân
101110(2)
đổi sang hệ nhị phân các số sau : 5,6,9,12