暴力枚举题。
分析
Step 1:定义两个变量,(n)和(y)。
int n,y;
cin>>n>>y;
Step 2:使用二重循环进行暴力枚举。
for(int i=0;i<=n;i++)
for(int j=0;j<=n-i;j++)
if(i*10000+j*5000+(n-i-j)*1000==y)
cout<<i<<' '<<j<<' '<<n-i-j<<'
',exit(0);
在这一步上很多大佬使用了三重循环,其实用二重循环就可以解决了。
Step 3:找完了还是没有符合要求的数。直接输出-1 -1 -1
并结束程序。
cout<<"-1 -1 -1
";
完整代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,y;
cin>>n>>y;
for(int i=0;i<=n;i++)
for(int j=0;j<=n-i;j++)
if(i*10000+j*5000+(n-i-j)*1000==y)
cout<<i<<' '<<j<<' '<<n-i-j<<'
',exit(0);
cout<<"-1 -1 -1
";
return 0;
}
若题解有问题请私信我。