码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 725 Division (简单枚举)

时间:2016-08-23 18:49:03      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

链接:http://acm.hust.edu.cn/vjudge/problem/35442
题意:
输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列(可以有前导0),2≤n≤79。
分析:
枚举fghij算出abcde,然后判断是否所有数字都不相同,当abcde和fghij加起来超过10位时终止枚举。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int n;
 7 
 8 int main() {
 9     int kase = 0;
10     char buf[99];
11     while (scanf("%d", &n) == 1 && n) {
12         if (kase++) putchar(\n);
13         int cnt = 0;
14         for (int fghij = 1234; ; fghij++) {
15             int abcde = fghij * n;
16             sprintf(buf, "%05d%05d", abcde, fghij);
17             if (strlen(buf) > 10) break;
18             sort(buf, buf + 10);
19             bool ok = true;
20             for (int i = 0; i < 10; i++)
21                 if (buf[i] != 0 + i) ok = false;
22             if (ok) {
23                 cnt++;
24                 printf("%05d / %05d = %d\n", abcde, fghij, n);
25             }
26         }
27         if (!cnt) printf("There are no solutions for %d.\n", n);
28     }
29     return 0;
30 }

UVa 725 Division (简单枚举)

标签:

原文地址:http://www.cnblogs.com/XieWeida/p/5800267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!