您的位置:首页 > 其它

UVa 725 除法

2015-12-06 23:16 267 查看
分析:这个题只需枚举fghij便可,然后判断是否所有的数字都用过,大大减少了枚举的总量,可见,即使暴力枚举,也是需要好好分析问题的。

代码如下

#include <cstdio>

#include <cstring>

int visit[10]={0};

int panduan(int a,int b)

{

if (b>98765) return 0;

memset(visit,0,sizeof(visit));//每次都要初始化

if (a<10000) visit[0]=1;//此情况不能忘

while (a!=0)

{

visit[a%10]=1;

a/=10;

}

while (b!=0)

{

visit[b%10]=1;

b/=10;

}

int sum=0;

for (int i=0;i<10;i++)

sum+=visit[i];

return (sum==10);

}

int main()

{

int n;

scanf("%d",&n);

for (int i=1234;i<100000;i++)

{

if (panduan(i,i*n)) printf("%05d/%05d=%d\n",i*n,i,n);//注意补0

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: