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;
}
Bài liên quan
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
BFS nhưng chỉ có 1 nhánh à anh?
à 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