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; }
以上是关于UVA725 除法 (Division )的主要内容,如果未能解决你的问题,请参考以下文章