giabinh

725_Division

Jul 20th, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int n;
  6. bool found;
  7.  
  8. bool check(int tu, int mau){
  9.     int d[10];
  10.     memset(d, 0, sizeof(d));
  11.     for (int i = 0; i < 5; ++i){
  12.         ++d[tu%10]; ++d[mau%10];
  13.         tu /= 10; mau /= 10;
  14.     }
  15.     for (int i = 0; i < 10; ++i)
  16.         if (d[i] != 1) return false;
  17.  
  18.     return true;
  19. }
  20.  
  21. void printfResult(int tu, int mau){
  22.     if (tu <= 9999) printf("0%d", tu);
  23.     else printf("%d", tu);
  24.     printf(" / ");
  25.     if (mau <= 9999) printf("0%d", mau);
  26.     else printf("%d", mau);
  27.     printf(" = %d\n", n);
  28. }
  29.  
  30. int main(){
  31.     #ifndef ONLINE_JUDGE
  32.         freopen("725_Division.inp", "r", stdin);
  33.     #endif // ONLINE_JUDGE
  34.  
  35.     bool firstline = true;
  36.     while (scanf("%d", &n) && (n!=0)){
  37.         found = false;
  38.         if (!firstline) printf("\n"); else firstline = false;
  39.  
  40.         for (int mau = 1234; mau < 98765; ++mau){
  41.             int tu = mau*n;
  42.             if (tu > 98765) break;
  43.             if (check(tu, mau)) {
  44.                 printfResult(tu, mau);
  45.                 found = true;
  46.             }
  47.         }
  48.  
  49.         if (!found) printf("There are no solutions for %d.\n", n);
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment