

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Thuật toán: brute-force
Cách làm:
Nếu n bằng 0
$\Rightarrow$ nếu s = 1 in 0
$\Rightarrow$ Nếu không, không có con số như vậy là có thể.
Nếu n> 9 * s thì không thể có con số như vậy.
Chạy vòng lặp for từ 0 đến m-1
Nếu n> = 9 thì trừ 9 cho s và in ra 9.
In khác s và đặt s thành 0.
Code c++:
#include <iostream>
using namespace std;
void findpassword(int m, int s)
{
if (s == 0) {
(m == 1) ? cout << 0
: cout << -1;
return;
}
if (s > 9 * m) {
cout << -1;
return;
}
int res[m];
for (int i = 0; i < m; i++) {
if (s >= 9) {
res[i] = 9;
s -= 9;
}
else {
res[i] = s;
s = 0;
}
}
for (int i = 0; i < m; i++)
cout << res[i];
}
int main()
{
int s,m;
cin>> m >> s;
findpassword(m, s);
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?

//Xóa dòng dưới nếu cần nhập xuất = file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
//Bỏ // ở 2 dòng dưới nếu cần nhập xuất = file
//ifstream cin("PASSWORD.INP");
//ofstream cout("PASSWORD.OUT");
int n,s;
cin >> n >> s;
if (n*9<s) cout << -1;
else
{
string a;
for (int i=0; i<n; i++)
{
if (s>9) {a+='9'; s-=9;}
else {a+=to_string(s); s-=s;}
}
cout << a;
}
}
$\\$
`@Daoanhviet96`
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
108
1422
43
5 sao ạ
108
1422
43
cho ctlhn