CallMeTewi @ 2016-06-28 14:06:50
[codec]
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int a=0,b=0,c=0;
bool fl=false;
void check(int);
int main()
{
cin>>a>>b>>c;
for (int i=123;i<987;i++)
check(i);
if (!fl) cout<<"No!!!"<<endl;
return 0;
}
void check(int x)
{
int n=x/a;
if (n*a!=x) return;
int y=n*b;
int z=n*c;
if (y>987||z>987) return;
vector<int> ch;
ch.push_back(x/100);
ch.push_back(x%100/10);
ch.push_back(x%10);
ch.push_back(y/100);
ch.push_back(y%100/10);
ch.push_back(y%10);
ch.push_back(z/100);
ch.push_back(z%100/10);
ch.push_back(z%10);
sort(ch.begin(),ch.end());
if (ch.end()==unique(ch.begin(),ch.end()))
{
cout<<x<<" "<<y<<" "<<z<<endl;
fl=true;
}
}
[/codec]
第一个测试点通过不能 = =
by lzr20040310 @ 2016-06-28 22:10:37
你好牛,你的代码我现在都看不懂
但我1个月前就做出来了。
并且我2个月前才学的。
给一下简单的思路(我觉得你可能弄复杂了)
1、输入
2、搜索与枚举最小的数(不是a的倍数跳过)
3、根据比例算出另外两个数
4、拆!拆成9个一位数然后搜1~9看有缺没
5、没缺输出,返回2