问题标题: 酷町堂:1720 三连击1:2:3

0
0

0
已采纳
马佳滢
马佳滢
新手天翼
新手天翼

方法1:

    定义 数组a[500],j1,j2,j3,s;
   循环 (int i从123循环到329)
    {
        循环 (int j从1循环到9)
        {
            a[j]赋值0;
        }
        j1赋值i;j2赋值i×2;j3赋值i×3;
        循环 (int j从1循环到3)
        {
            a[j1求余10]赋值1;
            a[j2求余10]赋值1;
            a[j3求余10]赋值1;
            j1÷等于10;
            j2÷等于10;
            j3÷等于10;
        }
        s赋值0;
        循环 (int j从1循环到9)
            s加等于a[j];
        判断(如果s等于9)
           输出i"空格"i×2"空格"i×3 换行;
    }

方法2:

直接输出:

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

0
0
0
梁锦程
梁锦程
高级光能
高级光能
int judge(int x1,int x2,int x3,int y1,int y2,int y3,int z1,int z2,int z3)
{
    int i;
    for(i=0;i<=9;i++)
        flag[i]=0;
    flag[x1]++;flag[x2]++;flag[x3]++;
    flag[y1]++;flag[y2]++;flag[y3]++;   
    flag[z1]++;flag[z2]++;flag[z3]++;
    if(flag[0]>0)
        return 0;
    for(i=1;i<=9;i++)
        if(flag[i]>=2)
            return 0;
    return 1;
}
void work(int a,int b,int c)
{
    int i,j,k,i1,i2,i3,j1,j2,j3,k1,k2,k3,t;
    for(i=100;i<=981;i++)
            {
                j=i/a*b,k=i/a*c;
                i1=i/100;i2=i/10%10;i3=i%10;
                j1=j/100;j2=j/10%10;j3=j%10;
                k1=k/100;k2=k/10%10;k3=k%10;
                if((j<=999)&&(k<=999)&&(a*j==b*i)&&(c*j==b*k)&&(a*k==c*i)&&(judge(i1,i2,i3,j1,j2,j3,k1,k2,k3)==1))    
                    cout<<i<<" "<<j<<" "<<k<<endl;
            }
} 

望采纳,谢谢

我要回答