标签:log gif == can 整数 pre turn ima one
题意:给定一个正整数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; }
标签:log gif == can 整数 pre turn ima one
原文地址:http://www.cnblogs.com/seaupnice/p/7631376.html