Dog_Two @ 2017-05-10 17:20:51
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
bool orr(int,int,int);
int num[9];
int main()
{
bool q=false;
memset(num,0,sizeof(num));
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a==0||b==0||c==0)
{
printf("No!!!");
return 0;
}
for(int i=111;i<=333;i++)
{
if((i%a==0)&&(orr(i,i*b/a,i*c/a)))
{
printf("%d%d%d\n",i,i*b/a,i*c/a);
q=1;
}
}
if(q==0)
{
printf("No!!!");
}
return 0;
}
bool orr(int a,int b,int c)
{
while(a>0)
{
num[a%10]++;
a/=10;
}
while(b>0)
{
num[b%10]++;
b/=10;
}
while(c>0)
{
num[c%10]++;
c/=10;
}
for(int i=0;i<=9;i++)
{
if(num[i]!=1)
{
return false;
}
}
return true;
}
by Magi_karp @ 2017-06-02 23:06:17
首先a的循环就有问题
没人说a<b<c
所以a应该是123<=a<=987;
但是最主要是你orr的for循环里
num[0]基本上根本没碰到,
而且题面是把1~9分没带0
所以num【0】极大可能是0
所以返回false
所以。。。