火花 @ 2019-09-01 21:14:40
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string s = "123456789";
float a, b, c;
int p = 0;
cin >> a >> b >> c;
while (next_permutation(s.begin(), s.end()))
{
//cout << atof(s.substr(0, 3).c_str()) << " " << atof(s.substr(3, 3).c_str()) << " " << atof(s.substr(6, 3).c_str()) << endl;
if(atof(s.substr(3, 3).c_str()) / atof(s.substr(0, 3).c_str()) == b / a && atof(s.substr(6, 3).c_str()) / atof(s.substr(0, 3).c_str()) == c / a)
{
cout << s.substr(0, 3) << " " << s.substr(3, 3) << " " << s.substr(6, 3) << endl;
p = 1;
}
}
if(p == 0) cout << "No!!!" << endl;
return 0;
}
不知道哪里有问题啊qaq
by 火花 @ 2019-09-01 21:34:20
有了有了
有两个问题:
1.while next_permutation直接就到下一种排序了,所以123 456 789 这个就没试过
2.要double类型??atof转完不应该是float吗,那float/float 和 float/float 为什么不相等??我不是很清楚
by S1gMa @ 2019-09-20 18:06:20
第二个问题你直接强制转换就可以的这样的话可能会白给就像17csp/sT1这样就直接凉凉(后来也是官方改的测试数据)
by S1gMa @ 2019-09-20 18:06:24
@htq233