问题标题: 洛谷:p1008???


0
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼

这道题在洛谷上可以直接输出哦!题目是这么say的:

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

999/3=333;

最小的三位数中三个数每两个数都不相同的是123.

最大的三位数中,小于333,三个数每两个数都不相同的是329.

循环,从123到329.

j赋值为i,j1赋值为i的两倍,j2赋值为i的三倍,这样好记一点哦!(因为是1:2:3,的关系哦!!)

for (int j=1;j<=3;j++)
        {
            a[j1%10]=1;
            a[j2%10]=1;
            a[j3%10]=1;
            j1/=10;
            j2/=10;
            j3/=10;
        }

然后定义一个变量,s,初始值为0,

从1到9(因为是九个数字,1~9),循环,

    s加上a[i],(a数组每次循环都全赋值为0,可以用循环或函数(如果用函数,是:memset(a,0,sizeof(a),要加头文件:#include <cstring>)

如果s为9,则我们就很幸运了,就输出了,并换行。

100AC,不对,再评论我吧!!!

0
0
李庚午
李庚午
中级守护
中级守护

直接枚举即可,另外,这道题和数据结构没什么联系吧……

0
王星河
王星河
资深光能
资深光能

字符串水题(至少我是用字符串做的,很短)

for(int i=123;i<=321;i++){
    stringstream tmp;
    tmp<<i<<i*2<<i*3;
    tmp>>s;
    int x=0;
    for(char c='1';c<='9';c++) if(s.find(c)!=string::npos) x++;
    if(x==9) cout<<i<<' '<<i*2<<' '<<i*3<<'\n';
}
王星河在2018-02-18 19:54:36追加了内容

327

0
0
王星河
王星河
资深光能
资深光能

192 384 576
219 438 657
273 546 819
327 654 981
 

0
夏子健
夏子健
初级光能
初级光能

for(i=123;i<=329;i++)
    {
        n=0;
        for(k=1;k<=9;k++)
        s1[k]=0;
        x=i;
        y=i*2;
        z=i*3;
        for(j=1;j<=3;j++)
        {
            s1[x%10]=1;
            s1[y%10]=1;
            s1[z%10]=1;
            x=x/10;
            y=y/10;
            z=z/10;
        }
        for(j=1;j<=9;j++)
        {
            n=n+s1[j];
        }
        if(n==9)
        {
            cout<<i<<" "<<i*2<<" "<<i*3<<endl;
        }
    }
 

0
夏子健
夏子健
初级光能
初级光能

先枚举所有数,然后用数组存储,如果不重复,和一定为9

0
朱宇辰
朱宇辰
初级守护
初级守护

给个比较暴力简单的方法,只要将可能的数枚举一遍。(因为三倍限制,又不能重数字,所以是123->329)

然后将所有数位的数码分离出来,看一看是不是刚好占满9个数字,即可判断。最后输出结果。

for (i=123;i<=329;i++)
    {
        a[1]=i%10;
        a[2]=i%100/10;
        a[3]=i/100;
        a[4]=2*i%10;
        a[5]=2*i%100/10;
        a[6]=2*i/100;
        a[7]=3*i%10;
        a[8]=3*i%100/10;
        a[9]=3*i/100;
        sort(a+1,a+10);
        ans=true;
        for (j=1;j<=9;j++) if (a[j]!=j) ans=false;
        if (ans) cout<<i<<" "<<i*2<<" "<<i*3<<endl;
    }

 

我要回答