zoukankan      html  css  js  c++  java
  • 带分数问题

    用1~9组成       B
                     k=A——
                            C
    九个数字必须全用
    #include<cstdio>
    using namespace std;
    int n;bool shuchu=0;
    bool cha(int i,int j)
    {
        bool ji[11]={0};
        if(i>=10&&i/10!=i%10&&i/10!=0&&i%10!=0)
        {
            ji[i/10]=1;
            ji[i%10]=1;
        }
        if(i>=10&&(i/10==i%10||i/10==0||i%10==0))
        return 1;
        if(i<10)
        {
            ji[i]=1;
        }
        int jii=j*(n-i);
        while(jii)
        {
            if(ji[jii%10]==1||jii%10==0)
            {
                return 1;
            }
            ji[jii%10]=1;
            jii/=10;
        }
        while(j)
        {
            if(ji[j%10]==1||j%10==0)
            return 1;
            ji[j%10]=1;
            j/=10;
        }
        for(int i=1;i<10;i++)
        {
            if(ji[i]==0)
            return 1;
        }
        return 0;
    }
    int weishu(int k)
    {
        int jii=0;
        while(k!=0)
        {
            jii++;k/=10;
        }
        return jii;
    }
    int printt(int k)
    {
        int jii=weishu(k);
        for(int i=0;i<jii;i++)
        {
            printf("-");
        }
        printf(" ");
        return jii;
    }
    void print(int shu,int zhi)
    {
        int jishu=3;
        if(n==100)
        jishu++;
        if(n<10)
        jishu--;
        if(shu>=10)
        {
            jishu++;
        }
        if(zhi>=10)
        {
            jishu++;
        }
        for(int i=0;i<jishu;i++)
        {
            printf(" ");
        }
        printf("%d ",(n-shu)*zhi);
        printf("%d=%d",n,shu);
        int jish=printt((n-shu)*zhi);
        int jjshu=weishu(zhi);
        for(int i=0;i<jish+jishu-jjshu;i++)
        {
            printf(" ");
        }
        printf("%d ",zhi);
    }
    void fen()
    {
        for(int i=1;i<n;i++)
        {
            for(int j=1;j<5000;j++)
            {
                if(cha(i,j)==0)
                {
                    shuchu=1;
                    print(i,j);
                }
            }
        }
    }
    int main()
    {
        scanf("%d",&n);
        while(n!=0)
        {
            shuchu=0;
            fen();
            if(shuchu==0)
            {
                printf("impossible ");
            }
            scanf("%d",&n);
        }
    }
  • 相关阅读:
    hdu 1028 母函数 一个数有几种相加方式
    第m个全排列
    大数处理
    并查集
    KMP算法及KMP算法的应用(POJ2406)
    算法---分治法
    末学者笔记--NTP服务和DNS服务
    末学者笔记--NFS服务和DHCP服务讲解
    末学者笔记--SSHD服务及SCP用法
    末学者笔记——SAMBA服务、FTP服务讲解
  • 原文地址:https://www.cnblogs.com/fanhao050109/p/11197323.html
Copyright © 2011-2022 走看看