HackerRank : Day 10

Ai có cách làm hay hơn thì chia sẻ nhé
À bỏ cái #include <math.h> đi nhé

http://pastebin.com/wy3iHCev

cần lắm một cái đề chủ @beo_sen ơi

Bakf trong hacker rank ngày 10 đó bạn

nói nhanh đề bài đi cho gọn bạn
chứ lười reg nó lắm, reg là phải làm hết

Chuyển từ interger qua bit và đếm xem cdayx các số 1 liền kề nhau nào lớn nhấT vàcos bn số

thật là đọc k hiểu đang ghi gì luôn ấy :’(

Chuyển từ interger qua nhị phân
Ví dụ nhé :sagittarius:
số 155 --> 10011011

Như vậy rồi đếm xem số số 1 kề nhau lớn nhất là bao nhiêu
Ở đây là 2

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int mx = 0;
	int n, cnt = 0;
	
	cin >> n;
	while (n){
		if (n & 1)
			cnt++;
		else{
			mx = max(mx, cnt);
			cnt = 0;
		}
		n >>= 1;
	}
	mx = max(mx, cnt);
	cout << mx;
	
	return 0;
}

vậy thì thế này gọn hơn :smiley:

2 Likes

ông chuyển sang binary đoạn nào thế @@
à cái của tôi bỏ cái thư viện math.h đi nhé,chỉ cần thư viện std + cái bitset thôi

không nhất thiết phải chuyển sang hệ nhị phân, vừa chuyển vừa tính luôn

Hay,vừa test thì đúng thế.để đọc code xem sao,thanks nhé :smiley:

Cái mx = max(mx, cnt) là để so sánh 2 cái cái nào lớn hơn hả c?

hay thì phải like share subscribe chứ :joy:

1 Like

return về max value của 2 tham số

n >>= 1 là gán giá trị 1 cho n hả ông :)))

n >>= 1 tương đương n = n >> 1
phép dịch bit, dịch sang phải 1 bit
tương đương n = n / 2

tui vẫn chưa hiểu ông chuyển sang nhị phân kiểu gì
Ông viết riêng cái code chuyển sang nhị phân tui xem đc ko :frowning:

trong code này nếu nói “chuyển nhị phân” thì không hề có, nhưng bản thân cái biến n khi lưu xuống thì nó đã được biểu diễn ở dạng nhị phân rồi, chỉ đang đem nó ra xài thôi :))

Tức là khi ông sài n >>= 1 thì ví dụ
0 0 0 1 1 1 0 0 1 1
1 2 3 4 5 6 7 8 9 0

Thì nó ở vị trí thứ 1 chuyển sang vị trí thứ 2?

Giá trị của N trong các vòng lặp lần lượt sẽ là:
155 - 77 - 38 - 19 - 9 - 4 - 2 - 1 - 0
nếu để ý bit cuối của từng giá trị
ta sẽ thấy là
1 - 1 - 0 - 1 - 1 - 0 - 0 - 1
thì cái này có phải chính là biểu diễn ngược của 155 ở hệ nhị phân không :3

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?