标签:
Description
Write a program that finds and displays all pairs of 5-digit numbers that between them use the digits 0 through 9 once each, such that the first number divided by the second is equal to an integer N, where . That is,
abcde / fghij =N
where each letter represents a different digit. The first digit of one of the numerals is allowed to be zero.
Your output should be in the following general form:
xxxxx / xxxxx =N
xxxxx / xxxxx =N
.
.
In case there are no pairs of numerals satisfying the condition, you must write ``There are no solutions for N.". Separate the output for two different values of N by a blank line.
61 62 0
There are no solutions for 61. 79546 / 01283 = 62 94736 / 01528 = 62
#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; }
标签:
原文地址:http://www.cnblogs.com/demodemo/p/4690560.html