UVA 725 Division

来源:互联网 发布:知已图片 编辑:程序博客网 时间:2024/06/10 07:19

题目大意:给一个数字n,用0~9组合成abcde/fgkij=n的式子,0~9都只能用一次,0可以前置
解题思路:枚举fgkij的所有情况,自然得出abcde,判断是否符合条件

#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main() {    int n;    cin >> n;    int g[10];    while(n != 0) {        int k = 1234;        int flag = 0;        while(k <= 98765) {            int m = k * n;            if(m > 98765) {                k++;                break;            }            memset(g, 0, sizeof(g));            int p = k;            int q = m;            for(int i = 0; i < 5; i++) {                g[p%10]++;                g[q%10]++;                p = p / 10;                q = q / 10;            }            int test = 0;            for(int i = 0; i < 10; i++) {                if(g[i] != 1)                    break;                if(i == 9)                    test = 1;            }            if(test == 0) {                k++;                continue;            }            printf("%05d / %05d = %d\n",m,k,n);            k++;            flag = 1;        }        if(flag == 0)            printf("There are no solutions for %d.\n", n);        cin >> n;        if(n != 0)            printf("\n");    }    return 0;}
0 0
原创粉丝点击