题解

83 条题解

  • 0
    @ 2017-05-15 21:50:46

    暴力美学
    int main()
    {
    for(int a=1;a<=9;a++)
    {
    ae[0]=a;
    for(int b=1;b<=9;b++)
    {
    ae[1]=b;
    for(int c=1;c<=9;c++)
    {
    ae[2]=c;
    for(int d=1;d<=9;d++)
    {
    ae[3]=d;
    for(int e=1;e<=9;e++)
    {
    ae[4]=e;
    for(int f=1;f<=9;f++)
    {
    ae[5]=f;
    for(int g=1;g<=9;g++)
    {
    ae[6]=g;
    for(int h=1;h<=9;h++)
    {
    ae[7]=h;
    for(int i=1;i<=9;i++)
    {
    ae[8]=i;
    if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i)
    {
    int t1,t2,t3;
    t1=ae[0]*100+ae[1]*10+ae[2];
    t2=ae[3]*100+ae[4]*10+ae[5];
    t3=ae[6]*100+ae[7]*10+ae[8];
    if(t1*2==t2&&t1*3==t3)cout<<t1<<" "<<t2<<" "<<t3<<endl;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return 0;
    }

  • 0
    @ 2017-04-25 19:45:48
    #include<stdio.h>
    int main()
    {
        int a1, a2, a3;
        int num[9];
        int i, j, k;
        for (a1 = 123; a1 < 329; a1++)
        {
            k = 1;
            a2 = a1 * 2, a3 = a1 * 3;
            num[0] = a1 / 100, num[1] = (a1 / 10) % 10, num[2] = a1 % 10;
            num[3] = a2 / 100, num[4] = (a2 / 10) % 10, num[5] = a2 % 10;
            num[6] = a3 / 100, num[7] = (a3 / 10) % 10, num[8] = a3 % 10;   //按顺序把每个数字存入数组
            for (i = 0; i < 9; i++)                                         //数组中的数两两不等且不等于0
                for (j = i + 1; j < 9; j++)
                    if (num[i] == 0 || num[j] == 0 || num[i] == num[j])
                    {
                        k = 0;                                              //不满足条件则将开关关闭
                        break;
                    }
            if (k == 1) printf("%d %d %d\n", a1, a2, a3);
        }
        getchar();
        return 0;
    }
    
  • 0
    @ 2017-04-23 14:41:11

    #include<stdio.h>
    main()
    {
    int i,j,k,h,s;
    int a[10];
    for(i=123;i*3<=987;i++)
    {
    for(h=1;h<10;h++)
    a[h]=0;
    a[i/100]=1;
    a[i/10%10]=1;
    a[i%10]=1;
    j=i*2;
    a[j/100]=1;
    a[j/10%10]=1;
    a[j%10]=1;
    k=i*3;
    a[k/100]=1;
    a[k/10%10]=1;
    a[k%10]=1;
    for(s=0,h=1;h<10;h++)
    s=s+a[h];
    if(s==9)
    printf("%d %d %d\n",i,j,k);
    }
    }

  • 0
    @ 2017-04-17 10:04:02

    两种方法:
    第一种赖皮法

    //p1772
    #include<iostream>
    using namespace std;
    
    int main()
    {
        std::ios::sync_with_stdio(false);
        cout<<"192 384 576"<<endl;
        cout<<"219 438 657"<<endl;
        cout<<"273 546 819"<<endl;
        cout<<"327 654 981"<<endl;
    }
    

    第二种暴力法

    //p1772
    #include<iostream>
    using namespace std;
    
    int f(int x,int y,int z)
    {
        return x*100+y*10+z;
    }
    
    int main()
    {
        int a[9];
        for (a[0]=1;a[0]<10;a[0]++)
        for (a[1]=1;a[1]<10;a[1]++)
        if (a[0]!=a[1])
        for (a[2]=1;a[2]<10;a[2]++)
        if ((a[0]!=a[2])&&(a[1]!=a[2]))
        for (a[3]=1;a[3]<10;a[3]++)
        if ((a[0]!=a[3])&&(a[1]!=a[3])&&(a[2]!=a[3]))
        for (a[4]=1;a[4]<10;a[4]++)
        if ((a[0]!=a[4])&&(a[1]!=a[4])&&(a[2]!=a[4])&&(a[3]!=a[4]))
        for (a[5]=1;a[5]<10;a[5]++)
        if ((a[0]!=a[5])&&(a[1]!=a[5])&&(a[2]!=a[5])&&(a[3]!=a[5])&&(a[4]!=a[5]))
        for (a[6]=1;a[6]<10;a[6]++)
        if ((a[0]!=a[6])&&(a[1]!=a[6])&&(a[2]!=a[6])&&(a[3]!=a[6])&&(a[4]!=a[6])&&(a[5]!=a[6]))
        for (a[7]=1;a[7]<10;a[7]++)
        if ((a[0]!=a[7])&&(a[1]!=a[7])&&(a[2]!=a[7])&&(a[3]!=a[7])&&(a[4]!=a[7])&&(a[5]!=a[7])&&(a[6]!=a[7]))
        for (a[8]=1;a[8]<10;a[8]++)
        if ((a[0]!=a[8])&&(a[1]!=a[8])&&(a[2]!=a[8])&&(a[3]!=a[8])&&(a[4]!=a[8])&&(a[5]!=a[8])&&(a[6]!=a[8])&&(a[7]!=a[8]))
        if ((3*f(a[0],a[1],a[2])==f(a[6],a[7],a[8]))&&(2*f(a[0],a[1],a[2])==f(a[3],a[4],a[5])))
        cout<<f(a[0],a[1],a[2])<<' '<<f(a[3],a[4],a[5])<<' '<<f(a[6],a[7],a[8])<<endl;
        return 0;
    }
    
  • 0
    @ 2017-04-07 18:06:50

    #include<stdio.h>
    int q(int a,int b,int c)
    {
    b=2*a;
    c=3*a;
    int h,i,j,k,l,m,n,o,p;
    h=a%10;
    i=(a/10)%10;
    j=(a/100)%10;
    k=b%10;
    l=(b/10)%10;
    m=(b/100)%10;
    n=c%10;
    o=(c/10)%10;
    p=(c/100)%10;
    if(h!=i && h!=j && h!=k && h!=l && h!=m && h!=n && h!=o && h!=p && h!=0)
    if(i!=j && i!=k && i!=l && i!=m && i!=n && i!=o && i!=p && i!=0)
    if(j!=k && j!=l && j!=m && j!=n && j!=o && j!=p && j!=0)
    if(k!=l && k!=m && k!=n && k!=o && k!=p && k!=0)
    if(l!=m && l!=n && l!=o && l!=p && l!=0)
    if(m!=n && m!=o && m!=p && m!=0)
    if(n!=o && n!=p && n!=0)
    if(o!=p && o!=0)
    if(p!=0)
    printf("%d %d %d\n",a,b,c);
    }
    int main()
    {
    int a;
    int b;
    int c;
    for(a=100;a<333;a++)
    q(a,b,c);
    }

  • 0
    @ 2017-04-07 18:06:30

    #include<stdio.h>
    int q(int a,int b,int c)
    {
    b=2*a;
    c=3*a;
    int h,i,j,k,l,m,n,o,p;
    h=a%10;
    i=(a/10)%10;
    j=(a/100)%10;
    k=b%10;
    l=(b/10)%10;
    m=(b/100)%10;
    n=c%10;
    o=(c/10)%10;
    p=(c/100)%10;
    if(h!=i && h!=j && h!=k && h!=l && h!=m && h!=n && h!=o && h!=p && h!=0)
    if(i!=j && i!=k && i!=l && i!=m && i!=n && i!=o && i!=p && i!=0)
    if(j!=k && j!=l && j!=m && j!=n && j!=o && j!=p && j!=0)
    if(k!=l && k!=m && k!=n && k!=o && k!=p && k!=0)
    if(l!=m && l!=n && l!=o && l!=p && l!=0)
    if(m!=n && m!=o && m!=p && m!=0)
    if(n!=o && n!=p && n!=0)
    if(o!=p && o!=0)
    if(p!=0)
    printf("%d %d %d\n",a,b,c);
    }
    int main()
    {
    int a;
    int b;
    int c;
    for(a=100;a<333;a++)
    q(a,b,c);
    }

  • 0
    @ 2017-04-07 18:06:22

    #include<stdio.h>
    int q(int a,int b,int c)
    {
    b=2*a;
    c=3*a;
    int h,i,j,k,l,m,n,o,p;
    h=a%10;
    i=(a/10)%10;
    j=(a/100)%10;
    k=b%10;
    l=(b/10)%10;
    m=(b/100)%10;
    n=c%10;
    o=(c/10)%10;
    p=(c/100)%10;
    if(h!=i && h!=j && h!=k && h!=l && h!=m && h!=n && h!=o && h!=p && h!=0)
    if(i!=j && i!=k && i!=l && i!=m && i!=n && i!=o && i!=p && i!=0)
    if(j!=k && j!=l && j!=m && j!=n && j!=o && j!=p && j!=0)
    if(k!=l && k!=m && k!=n && k!=o && k!=p && k!=0)
    if(l!=m && l!=n && l!=o && l!=p && l!=0)
    if(m!=n && m!=o && m!=p && m!=0)
    if(n!=o && n!=p && n!=0)
    if(o!=p && o!=0)
    if(p!=0)
    printf("%d %d %d\n",a,b,c);
    }
    int main()
    {
    int a;
    int b;
    int c;
    for(a=100;a<333;a++)
    q(a,b,c);
    }

  • 0
    @ 2017-03-29 21:50:13

    begin
    writeln('192 384 576');
    writeln('219 438 657');
    writeln('273 546 819');
    writeln('327 654 981');
    end.

  • 0
    @ 2017-03-18 09:19:34

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int ok(int a,int b,int c,int d,int e,int f,int g,int h,int i){
    int aaa=a*100+b*10+c;
    int bbb=d*100+e*10+f;
    int ccc=g*100+h*10+i;
    if(aaa*2==bbb && aaa*3==ccc);
    else return 0;
    if(a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h && a!=i)
    if(b!=c && b!=d && b!=e && b!=f && b!=g && b!=h && b!=i)
    if(c!=d && c!=e && c!=f && c!=g && c!=h && c!=i)
    if(d!=e && d!=f && d!=g && d!=h && d!=i)
    if(e!=f && e!=g && e!=h && e!=i)
    if(f!=g && f!=h && f!=i)
    if(g!=h && g!=i)
    if(h!=i)return 1;
    return 0;
    }
    int main(){
    int i,j,k,n,m,a,b,c,d,e,f,g,h,l,o,p,q;
    printf("192 384 576\n");
    printf("219 438 657\n");
    printf("273 546 819\n");
    printf("327 654 981\n");
    // for(i=1;i<=9;i++)
    // for(j=1;j<=9;j++)
    // for(k=1;k<=9;k++)
    // for(a=1;a<=9;a++)
    // for(b=1;b<=9;b++)
    // for(c=1;c<=9;c++)
    // for(d=1;d<=9;d++)
    // for(e=1;e<=9;e++)
    // for(f=1;f<=9;f++)
    // if(ok(i,j,k,a,b,c,d,e,f)){
    // printf("%d ",i*100+j*10+k);
    // printf("%d ",a*100+b*10+c);
    // printf("%d\n",d*100+e*10+f);
    // }
    return 0;
    }

  • 0
    @ 2017-03-18 09:19:24

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int ok(int a,int b,int c,int d,int e,int f,int g,int h,int i){
    int aaa=a*100+b*10+c;
    int bbb=d*100+e*10+f;
    int ccc=g*100+h*10+i;
    if(aaa*2==bbb && aaa*3==ccc);
    else return 0;
    if(a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h && a!=i)
    if(b!=c && b!=d && b!=e && b!=f && b!=g && b!=h && b!=i)
    if(c!=d && c!=e && c!=f && c!=g && c!=h && c!=i)
    if(d!=e && d!=f && d!=g && d!=h && d!=i)
    if(e!=f && e!=g && e!=h && e!=i)
    if(f!=g && f!=h && f!=i)
    if(g!=h && g!=i)
    if(h!=i)return 1;
    return 0;
    }
    int main(){
    int i,j,k,n,m,a,b,c,d,e,f,g,h,l,o,p,q;
    printf("192 384 576\n");
    printf("219 438 657\n");
    printf("273 546 819\n");
    printf("327 654 981\n");
    // for(i=1;i<=9;i++)
    // for(j=1;j<=9;j++)
    // for(k=1;k<=9;k++)
    // for(a=1;a<=9;a++)
    // for(b=1;b<=9;b++)
    // for(c=1;c<=9;c++)
    // for(d=1;d<=9;d++)
    // for(e=1;e<=9;e++)
    // for(f=1;f<=9;f++)
    // if(ok(i,j,k,a,b,c,d,e,f)){
    // printf("%d ",i*100+j*10+k);
    // printf("%d ",a*100+b*10+c);
    // printf("%d\n",d*100+e*10+f);
    // }
    return 0;
    }

  • 0
    @ 2017-03-13 10:30:05
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    inline void check(int x,int y,int z)
    {
        bool vis[10]={0};
        vis[x]=vis[y]=vis[z]=1;
        int t=x*100+y*10+z;
        int m1=t*2;
        vis[m1/100]=1;vis[(m1%100)/10]=1;vis[m1%10]=1;
        int m2=t*3;
        vis[m2/100]=1;vis[(m2%100)/10]=1;vis[m2%10]=1;
        for(int i=1;i<=9;i++)   if(!vis[i]) return;
        printf("%d %d %d\n",t,m1,m2);
    }
    int main()
    {
        for(int i=1;i<=9;++i)
            for(int j=1;j<=9;++j)
                for(int k=1;k<=9;++k)
                {
                    check(i,j,k);
                }
    }
    
  • 0
    @ 2012-11-13 18:23:40

    ├ 测试数据 01:答案正确... (31ms, 412KB)

    枚举+剪枝AC了,但没有秒杀……

    var

    a,b,c,o,p,q,i,j,k:integer;

    begin

    for a:=1 to 3 do

    for b:=1 to 9 do

    if ab then

    for c:=1 to 9 do

    if (ac)and(bc) then

    for o:=1 to 9 do

    if (ao)and(bo)and(co) then

    for p:=1 to 9 do

    if (ap)and(bp)and(cp)and(op) then

    for q:=1 to 9 do

    if (aq)and(bq)and(cq)and(oq)and(pq) then

    for i:=1 to 9 do

    if (ai)and(bi)and(ci)and(oi)and(pi)and(qi) then

    for j:=1 to 9 do

    if (aj)and(bj)and(cj)and(oj)and(pj)and(qj)and(ij) then

    for k:=1 to 9 do

    if (ak)and(bk)and(ck)and(ok)and(pk)and(qk)and(ik)and(jk) then

    if (2*(a*100+b*10+c)=(o*100+p*10+q))and(3*(a*100+b*10+c)=(i*100+j*10+k)) then

    begin

    write(a*100+b*10+c,' ');

    write(o*100+p*10+q,' ');

    writeln(i*100+j*10+k);

    end;

    end.

  • -1
    @ 2018-01-23 15:07:51

    此题运用一个array[10]来判断每个数是否已经出现。array[i] = 0 未出现 否则已出现 continue至下一个循环
    ```cpp
    #include <stdio.h>
    int judge(int *array,int i);
    int main(int argc, const char * argv[]) {
    for (int i = 123; i < 329; i++) {
    int array[10] = {0};
    if (judge(array, i) && !array[0])
    printf("%d %d %d\n",i,i*2,i*3);
    }
    return 0;
    }

    int judge(int *array,int i)
    {
    int twice = i*2, threetimes = i*3;
    for (int j = 0; j < 3; j++) {
    if (!array[i%10]) array[i%10] = 1;
    else return 0;
    if (!array[twice%10]) array[twice%10] = 1;
    else return 0;
    if (!array[threetimes%10]) array[threetimes%10] = 1;
    else return 0;
    i /= 10;twice /= 10;threetimes /= 10;
    }
    return 1;
    }
    ```

  • -1
    @ 2017-12-27 00:18:29

    简单AC
    ```cpp
    #include<iostream>
    using namespace std;

    int zf(int x,int b,int c)
    {
    int a[10]={0};
    for (int i=1;i<=3;++i)
    {
    a[x%10]=1;
    a[b%10]=1;
    a[c%10]=1;
    x/=10;
    b/=10;
    c/=10;
    }
    if (a[1]==1&&a[2]==1&&a[3]==1&&a[4]==1&&a[5]==1&&a[6]==1&&a[7]==1&&a[8]==1&&a[9]==1)
    return 1;
    return 0;
    }
    int main()
    {
    int n;
    for (int i=100;i<=999;++i)
    if (zf(i,i*2,i*3))
    cout<<i<<" "<<i*2<<" "<<i*3<<endl;
    return 0;
    }

  • -1
    @ 2017-11-25 22:01:59
    //巧妙打表。。。
    //关了sync以后居然又续了1ms
    #include<iostream>
    using namespace std;
    int main() {
        cin.sync_with_stdio(false), cout.sync_with_stdio(false);
        cout << 192 << ' ' << 384 << ' ' << 576 << endl;
        cout << 219 << ' ' << 438 << ' ' << 657 << endl;
        cout << 273 << ' ' << 546 << ' ' << 819 << endl;
        cout << 327 << ' ' << 654 << ' ' << 981 << endl;
        return 0;
    }
    
  • -1
    @ 2017-10-26 00:15:54
    for a in range(100,333):
        s=str(a)+str(a*2)+str(a*3)
        flag=True
        for j in range(1,10):
            if s.find(str(j))==-1:
                flag=False
        if flag==True:
            print a,a*2,a*3
    
  • -1
    @ 2017-10-24 17:33:21
    golang 走起
    package main
    
    import (
        "fmt"
    )
    
    var list map[int]int
    
    func is_ok(n int)bool{
        list = map[int]int{1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9}
        for i:=1;i<=3;i++{
            //百位
            if v,e:= list[n*i/100];e{
                delete(list,v)
            }else{
                return false
            }
            //十位
            if v,e:= list[n*i/10%10];e{
                delete(list,v)
            }else{
                return false
            }
            //个位
            if v,e:= list[n*i%10];e{
                delete(list,v)
            }else{
                return false
            }
        }
        return true
    }
    
    func main() {
        for i:=123;i<=333 ;i++  {
            if is_ok(i){
                fmt.Println(i,i*2,i*3)
            }
        }
    }
    
    
  • -1
    @ 2017-10-02 20:05:00

    跳出题目的思维
    python3
    lst = list(range(123,988))
    strs = ""
    for i in lst:
    if i *2 in lst and i*3 in lst:
    strs= str(i)+str(2*i)+str(3*i)
    if "1" in strs and "2" in strs and"3" in strs and"4" in strs and"5" in strs and"6" in strs and"7" in strs and"8" in strs and"9" in strs:
    print('{} {} {}'.format(i,i*2,3*i))

  • -1
    @ 2017-09-26 23:03:09

    So easy!!!
    ```cpp
    #include<cstdio>
    #include<cstring>
    char s[10];
    bool b[10];
    bool pd(int x)
    {
    sprintf(s,"%d%d%d",x,x*2,x*3);
    memset(b,0,sizeof(b));
    for(int i=0;s[i];i++)
    {
    if(s[i]=='0')return false;
    if(b[s[i]-'0'])return false;
    b[s[i]-'0']=true;
    }
    return true;
    }
    int main()
    {
    for(int i=123;i*3<=999;i++)
    if(pd(i))
    printf("%d %d %d\n",i,i*2,i*3);
    return 0;
    }

  • -1
    @ 2017-09-20 10:54:47

    简单枚举
    ```cpp
    #include <map>
    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    map<int,int> vis;
    int main(){
    for ( int i=123; i<=333; i++ ){
    long long w=i*1000000+i*2*1000+i*3;
    bool chk=0;
    vis.clear();
    while( w ){
    int p=w%10;
    if( vis.count(p) || p==0 ) {
    chk=1;
    break;
    }
    vis[p]=1;
    w/=10;
    }
    if( !chk ) printf("%d %d %d\n", i, i*2, i*3);
    }
    return 0;
    }

信息

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