80?

P1618 三连击(升级版)

liujiao @ 2017-08-21 16:18:16

#include<iostream>
using namespace std;int q[9];
int main( )
{int a,b,c;
cin>>a>>b>>c;
int yi,er,san;int f=0,g=0;
for(yi=100;yi<=999;yi++)
{
    er=yi/a*b;
    san=yi/a*c;
    q[yi/100]++;
    q[yi/10%10]++;
    q[yi%10]++;
    q[er/100]++;
    q[er/10%10]++;
    q[er%10]++;
    q[san/100]++;
    q[san/10%10]++;
    q[san%10]++;
    for(int t=1;t<=9;t++)
    {if(q[t]==0)f=1;
    q[t]=0;
    }
    if(f==0){
        cout<<yi<<" "<<er<<" "<<san<<endl;;
        g=1;
    }f=0;
}if(g==0)cout<<"No!!!";
}

by Little_cat @ 2017-08-26 21:21:21

最后一个数据

A:123 B:456 C:789,这个比较坑,要是从100开始枚举最后一个点过不了,要从1开始枚举

你的yi,er,san都是int类型的,除下去小数部分就没了

而且如果yi过大,er,san就变成四位数了,不符合题意,要舍去的


|