题目链接:Division
思路:
枚举被除数和除数,其实每次只要枚举除数或者被除数其中一个,在知道两个值后就可以知道第三个值,然后再判断能否采用
代码:
#include<stdio.h> int number[15]; int check(int a, int b) { if (a > 98765) return 0; for (int i = 0; i < 10; i++) { number[i] = 0; } if (b < 10000) number[0] = 1; while (a) { number[a % 10] = 1; a /= 10; } while ( b ) { number[b % 10] = 1; b /= 10; } int sum = 0; for (int i = 0; i < 10; i++) sum += number[i]; return sum == 10; } int main() { int ans, cnt = 0; while (scanf("%d", &ans) == 1, ans) { if (cnt++) printf("\n"); int flag = 0; for (int i = 1234; i < 99999; i++) { if (check(i * ans, i)) { printf("%05d / %05d = %d\n", i * ans, i, ans); flag = 1; } } if (!flag) { printf("There are no solutions for %d.\n",ans); } } return 0; }