【求助】为什么全输出了

        大佬们帮忙看看为什么它全部都输出了好不好🥺
c++
#include <iostream>
#include <string>
using std::string;
bool judge(int, int, int);
int search(string, char);
int main(void)
{
using std::cout;
using std::endl;
int a1, a2, a3, i;
a1 = 0;
a2 = 0;
a3 = 0;
for (i = 100; i < 987 / 3; i++)
{
a1 = i;
a2 = i * 2;
a3 = i * 3;
if (judge(a1, a2, a3))
{
cout << a1 << ' ' << a2 << ' ' << a3 << endl;
}
}
return 0;
}
bool judge(int n1, int n2, int n3)
{
using std::cout;
using std::endl;
using std::to_string;
bool flag;
int i;
string s1, s2, s3;
flag = false;
s1 = to_string(n1);
s2 = to_string(n2);
s3 = to_string(n3);
if (search(s1, '0') != 0 || search(s2, '0') != 0 || search(s3, '0') != 0)
{
return false;
}
for (i = 0; i < 9; i++)
{
flag = false;
if (1 == search(s1, char(i + 1)))
{
flag = true;
}
else if (search(s1, char(i + 1)) > 1)
{
return false;
}
if (1 == search(s2, char(i + 1)) && !flag)
{
flag = true;
}
else if (search(s2, char(i + 1)) > 1 || flag)
{
return false;
}
if (1 == search(s3, char(i + 1)) && !flag)
{
flag = true;
}
else if (search(s3, char(i + 1)) > 1 || flag)
{
return false;
}
}
return true;
}
int search(string str, char ch)
{
int cnt;
string::const_iterator iter;
cnt = 0;
for (iter = str.begin(); iter != str.end(); iter++)
{
if (*iter == ch)
{
++cnt;
}
}
return cnt;
}

        代码写得比较乱,请大佬们见谅哈😊

2 条评论

  • 1

信息

ID
1772
难度
2
分类
搜索 点击显示
标签
递交数
2653
已通过
1282
通过率
48%
被复制
25
上传者