01/10/2018, 01:00

Mọi người giúp em bài này với

Cho một số 0<=N<=100000 không chia hết cho 2 và 5. X là bội số của N và X là một dãy số chỉ chứa các kí tự 1. Đếm xem dãy số X chứa bao nhiêu kí tự 1?

Ví dụ:
Input:
3
Output
3
Note: N=3 => X=111 X có chứa 3 kí tự 1.
Em làm vậy rồi mà không ra:

string soThanhChuoi(ll n);
string soThanhChuoi(ll n) {
	string s, kq;
	if (n<0)
		kq += '-';
	if (n == 0)
		kq = "0";
	n = abs(n);
	while (n>0) {
		s += (char)(n % 10 + 48);
		n /= 10;
	}
	for (int i = s.size() - 1; i >= 0; i--) {
		kq += s[i];
	}

	return kq;
}

ll BNN(ll n);
ll BNN(ll n) {
	int i = 1;
	if (n < 0)
		return 0;
	while (cin >> n){
		 if (n % 2 != 0 && n % 5 != 0){
			n = n*i;
			i++;
		}
		return n;
	}
}

ll XuLy(ll n);
ll XuLy(ll n) {
		string s = soThanhChuoi(BNN(n));
		int len = s.size();
		int dem = 0;
		for (int i = 1; i <= len; i++) {
			if (s[i] != 1)
				return 0;
		}
		return len;
}

int main() {
	ll n;
	cin >> n;
	cout << XuLy(n);
	return 0;
}
Nguyễn Xuân Phúc viết 03:02 ngày 01/10/2018

a thật sự không hiểu hàm BNN của em làm gì trong đó luôn
nhưng bài này là một bài BFS

Quoc Tran viết 03:17 ngày 01/10/2018

BFS nhưng chỉ có 1 nhánh à anh?

Nguyễn Xuân Phúc viết 03:13 ngày 01/10/2018

à bài này a giải quyết xong trên fb rồi
cái bfs là ban đầu a đọc k kỹ, tưởng là dùng 0 và 1 mới bfs, còn nếu 1 thì chỉ làm lặp thôi

Bài liên quan
0