UVA725 除法 (Division )

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA725 除法 (Division )相关的知识,希望对你有一定的参考价值。

技术分享

题意:给定一个正整数n,请按照从小到大的顺序输出形如abcde / fghij = n的表达式,其中每个字母代表0~9中的一个数字且每个数字只出现一次。

input:有多组输入。输入的每行仅有一个正整数n,当n为0时表示输入结束。

output:对于每组输入按照升序(以分母作为基准)输出abcde / fghij = n,其中abcde和fghij可以包含前导0。注意:/和=的两边都有空格。如果输入的n没有任何一组满足要求的结果,那么输出"There are         no solutions for n."(不含引号)。每组数据的输出中间有一个空行。

分析:只需枚举fghij就可算出abcde,然后判断所有数字都不相同。

技术分享
#include<cstdio>
#include<algorithm>
using namespace std;
int change(int a,int b)
{
    int s[10];
    for(int i=0; i<10;)
    {
        s[i++]=(a%10);    a/=10;
        s[i++]=(b%10);    b/=10;
    }
    sort(s,s+10);
    for(int i=0; i<10; i++)
        if(s[i]!=i) return 0;
    return 1;
}
int main()
{
    int N,flag=0;
    while(~scanf("%d",&N) && N>=2 &&N<=79)
    {
        if(flag)    printf("\\n");    flag++;
        int k=1;
        for(int i=1234; i<=98765; i++)
        {
            int j=i*N;
            if(j>=10234&&j<=98765)
            {
                if(change(i,j)==1)
                {
                    k=0;
                    if(i>10000) printf("%d / %d = %d\\n",j,i,N);
                    else    printf("%d / 0%d = %d\\n",j,i,N);
                }
            }
        }
        if(k)    printf("There are no solutions for %d.\\n",N);
    }
    return 0;
}
View Code

 

以上是关于UVA725 除法 (Division )的主要内容,如果未能解决你的问题,请参考以下文章

uva 725 Division

UVA 725 Division

UVA - 725 Division

UVA 725 division暴力枚举

Uva 725 Division

枚举专项练习_Uva725(Division)_Uva11059(Maximun Product)