UVA725
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA725相关的知识,希望对你有一定的参考价值。
虽然是暴力求解,但是也要观察条件,尽量提高效率。如本题,原本要枚举10个数,但是分析可知通过枚举fghij就可以了。
#include<stdio.h> #include<string.h> //判断a,b中的所有数字都不等 int judge(int a,int b){ if(a>100000) return 0; int ans[15]; int count = 0; int i; memset(ans,0,sizeof(ans)); if(b<10000) ans[0]=1;//因为如果是四位数,要考虑第一个0 while(a){ ans[a%10]=1; a/=10; } while(b){ ans[b%10]=1; b/=10; } for(i=0;i<10;i++) count += ans[i]; if(count==10) return 1; else return 0; } int main(){ int n,fghij; int f=1; while(scanf("%d",&n) == 1){ if(n==0) return 0; for(fghij=1234;fghij<100000;fghij++){ if(judge(fghij*n,fghij)){ printf("%d / %05d = %d\n",fghij*n,fghij,n); f=0; } } if(f) printf("There are no solutions for %d\n",n); } return 0; }
以上是关于UVA725的主要内容,如果未能解决你的问题,请参考以下文章