#28 [C++]. Hướng Dẫn Giải Bài Tập Xâu Kí Tự Trong C++ Phần 3.

  Рет қаралды 17,495

28tech

28tech

Күн бұрын

Пікірлер: 41
@28tech_
@28tech_ 2 жыл бұрын
Thông tin các khóa học mình đang hướng dẫn : 28tech.com.vn/
@htuanqn
@htuanqn 11 ай бұрын
cảm thán luôn, hay quá a ạ
@28tech_
@28tech_ 11 ай бұрын
Cảm ơn em hehe
@TuanDuong-ne6qu
@TuanDuong-ne6qu 2 күн бұрын
Bài38: (j*10 + num(s[i])) % n nghĩa là khi thêm s[i] vào cuối xâu con (nhân 10) để xem các sâu con từ vi trí bắt đầu tới i-1 (có thể xâu con không liên tiếp) chia n dư j khi thêm s[i] vào cuối xâu thì sẽ có số dư mới là bao nhiêu à a ?
@tano6587
@tano6587 2 ай бұрын
anh ơi mầy file bài tập này lấy ở đâu vậy ạ
@quyle2185
@quyle2185 2 жыл бұрын
a chỉ rõ cho em bài cuối chỗ hàm comp đc k anh nó lấy những cái xâu con từ cái xâu ban đầu theo thứ tự nào để so sánh ạ
@28tech_
@28tech_ 2 жыл бұрын
Em chỉ cái thời gian mà em hỏi ấy a mới check được.
@quyle2185
@quyle2185 2 жыл бұрын
@@28tech_ 1:15:15 ấy anh trong hàm comp vd cái 564 56 560 thì cái string a, string b sẽ được lấy từ chuỗi ban đầu như nào ạ
@BaoNguyên-u7q2t
@BaoNguyên-u7q2t 5 ай бұрын
Anh có giải bài nào như bài 38 mà từ đề bài từ xâu con có thể chứa các kí tự liên tiếp nhau đổi, thành xâu con không chứa các kí tự liên tiếp nhau không anh?
@HatGiongTamHon896
@HatGiongTamHon896 Жыл бұрын
Ở bài 34 nếu trường hợp dư của a cho m lớn hơn 10 mũ 9 thì hàm binpow của a sẽ tràn long long a ạ
@quanohong7393
@quanohong7393 3 жыл бұрын
Em đợi từ sáng ạ
@28tech_
@28tech_ 3 жыл бұрын
Uh đợi chút nữa nó đẩy HD là xem ok.
@namnguyenthien4236
@namnguyenthien4236 2 ай бұрын
mấy bài này khó quá huhu
@28tech_
@28tech_ 2 ай бұрын
Mạnh mẽ lên :D
@tuanduy1033
@tuanduy1033 Жыл бұрын
I really appreciate it
@truong6201
@truong6201 3 жыл бұрын
anh ơi bài số nhị phân chia hết cho 5 ấy ạ, ý tưởng của code là nhuq nào mà duyệt từ trái sang phải vậy ạ
@28tech_
@28tech_ 3 жыл бұрын
A duyệt từ phải sang ấy chứ
@truong6201
@truong6201 3 жыл бұрын
@@28tech_ dạ ko ý bài code mẫu anh để link trong file bài tập ấy ạ
@SieuTrom-
@SieuTrom- 3 жыл бұрын
Anh cho em hỏi nhập input ko biết trước số lượng phần tử thì bên C++ có dùng scanf()!=-1 như bên C ko ạ! Hay là có cách làm khác nữa!!!
@28tech_
@28tech_ 3 жыл бұрын
Uh a cũng hay dùng cách đó, hoặc e đọc cả dòng rồi tách cũng được, thường thì a đọc cả dòng rồi tách.
@28tech_
@28tech_ 3 жыл бұрын
Em gửi đề bài đi mới dễ nói :D
@SieuTrom-
@SieuTrom- 3 жыл бұрын
@@28tech_ vâng a, tại em cứ tưởng bên C++ có cách nhập khác nữa
@hobinh8744
@hobinh8744 2 жыл бұрын
anh ơi cho em hỏi ở bài 34. sau khi tìm được dư thì thay vì dùng lt nhị phân em có thể for(i đến b) rồi phần dư * phần dư xong mod cho số đầu bài thì có khả năng tràn bộ nhớ không anh nhỉ?
@28tech_
@28tech_ 2 жыл бұрын
Em test thử đi, anh lâu quá ko nhớ bài 34 là bài gì
@hobinh8744
@hobinh8744 2 жыл бұрын
@@28tech_ à dạ, em cảm ơn anh
@BaoNguyên-u7q2t
@BaoNguyên-u7q2t 5 ай бұрын
Quy hoạch động khó thật a ạ
@Jadenyuki676
@Jadenyuki676 8 ай бұрын
Bài 38 nghĩ nát óc cũng k hiẻu luôn á :((
@xuanthu_2002
@xuanthu_2002 3 жыл бұрын
Góp ý bài số may mắn chỉ cần dùng while tính tong = sum(tong) đến khi tong còn 1 chữ số nếu nó = 9 là được.
@28tech_
@28tech_ 3 жыл бұрын
Uh đúng rồi, cơ mà kiến thức về nén kĩ thuật số đó thì lại phải nói thêm. :D
@truong6201
@truong6201 3 жыл бұрын
là làm như này phải ko anh #include #include using namespace std; int num(char c){ return c - '0'; } string sum(string s){ int res = 0; for(int i = 0; i < s.length(); i++){ res += num(s[i]); } string x = to_string(res); return x; } void solve(string s){ while(s.length() != 1){ s = sum(s); } if(s[0] == '9'){ cout s; solve(s); } return 0; }
@khanhle7954
@khanhle7954 2 жыл бұрын
hay quá. mong a ra nhiều thuật toán hơn nữa
@haminh6219
@haminh6219 3 жыл бұрын
Bài đếm số xâu con chia hết cho N sao dp[j*10+num(s[i]))%n] +=dp[i-1][j] ạ, e chưa hiểu chỗ đó lắm
@28tech_
@28tech_ 3 жыл бұрын
Nó dựa vào kiến thức tìm số dư khi chia 1 số lớn cho 1 số tự nhiên. www.geeksforgeeks.org/program-quotient-remainder-big-number/
@phanvantai9452
@phanvantai9452 3 жыл бұрын
Bài 38 á anh. Em ko hiểu tại sao số xâu kết thúc tại vị trí i mà có số dư là (j*10+...) lại cộng dồn với số xâu kết thúc tại vị trí (i-1) chia n dư j. Hai cái này khác nhau về số dư mà anh. Mong anh giải thích giúp em
@28tech_
@28tech_ 3 жыл бұрын
trước hết em phải biết cách tìm số dư của 1 số nguyên lớn vs 1 số int hoặc long long thì sẽ hiểu được cái công thức đó.
@28tech_
@28tech_ 3 жыл бұрын
e có thể tìm ở trong phần xâu kí tự ở C của anh có hướng dẫn cái bài đó.
@phanvantai9452
@phanvantai9452 3 жыл бұрын
Em có biết cách tìm số dư rồi là kiểu dùng 1 hàm Cho ans=0 duyệt for ans=ans*10+....... Chứ em chưa thấy làm kiểu đó
@taiphanvan2403
@taiphanvan2403 3 жыл бұрын
@@28tech_ ALo anh còn thấy tin nhắn của em ko anh.Em cmt ở dưới ấy
@taiphanvan2403
@taiphanvan2403 3 жыл бұрын
Bài 38 em làm cách này em xem độ phức tạp có lớn ko anh? int cnt= 0; ll sodu(string x, int n) { ll res = 0; for (int i = 0; i < x.size(); i++) { res = res * 10 + x[i] - '0'; res %= n; } return res; } void dem(string x,string tam,int vt,int n) { For(i, vt, x.size()) { if (sodu(tam+x[i],n) == 0) cnt++; dem(x, tam + x[i], i + 1, n); } }
@vancaotran7547
@vancaotran7547 3 жыл бұрын
hay quá anh ơi
@28tech_
@28tech_ 3 жыл бұрын
Thanks b. :D
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 16 МЛН
Bài toán tìm dãy con tổng chia hết cho k
26:08
CVA TV
Рет қаралды 6 М.
Mảng Trong C++ | Array in C++
12:25
Cùng Học Lập Trình
Рет қаралды 1 М.
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.