fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. void swap(int *a, int i, int j)
  5. {
  6. if (i != j) {
  7. int swap = a[i]; a[i] = a[j]; a[j] = swap;
  8. }
  9. }
  10.  
  11. int permute(int *a, int level, int n)
  12. {
  13. int res = 0;
  14.  
  15. if (level == n) {
  16. if (a[0] && a[3] && a[6]) {
  17. int k = a[0]*100 + a[1]*10 + a[2];
  18. int l = a[3]*100 + a[4]*10 + a[5];
  19. int m = a[6]*1000 + a[7]*100 + a[8]*10 + a[9];
  20.  
  21. if (k + l == m) {
  22. printf("%d + %d == %d\n", k,l, m);
  23. return 1;
  24. }
  25. }
  26. } else {
  27. int i;
  28.  
  29. for (i = level; i < n; i++) {
  30. swap(a, level, i);
  31. res += permute(a, level + 1, n);
  32. swap(a, level, i);
  33. }
  34. }
  35.  
  36. return res;
  37. }
  38.  
  39. int main(void)
  40. {
  41. int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  42.  
  43. int n = permute(a, 0, 10);
  44. printf("--\n%d solutions\n", n);
  45.  
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0.06s 9416KB
stdin
Standard input is empty
stdout
246 + 789 == 1035
249 + 786 == 1035
264 + 789 == 1053
269 + 784 == 1053
284 + 769 == 1053
286 + 749 == 1035
289 + 746 == 1035
289 + 764 == 1053
324 + 765 == 1089
325 + 764 == 1089
342 + 756 == 1098
346 + 752 == 1098
347 + 859 == 1206
349 + 857 == 1206
352 + 746 == 1098
356 + 742 == 1098
357 + 849 == 1206
359 + 847 == 1206
364 + 725 == 1089
365 + 724 == 1089
423 + 675 == 1098
425 + 673 == 1098
426 + 879 == 1305
429 + 876 == 1305
432 + 657 == 1089
437 + 589 == 1026
437 + 652 == 1089
439 + 587 == 1026
452 + 637 == 1089
457 + 632 == 1089
473 + 589 == 1062
473 + 625 == 1098
475 + 623 == 1098
476 + 829 == 1305
479 + 583 == 1062
479 + 826 == 1305
483 + 579 == 1062
487 + 539 == 1026
489 + 537 == 1026
489 + 573 == 1062
537 + 489 == 1026
539 + 487 == 1026
573 + 489 == 1062
579 + 483 == 1062
583 + 479 == 1062
587 + 439 == 1026
589 + 437 == 1026
589 + 473 == 1062
623 + 475 == 1098
624 + 879 == 1503
625 + 473 == 1098
629 + 874 == 1503
632 + 457 == 1089
637 + 452 == 1089
652 + 437 == 1089
657 + 432 == 1089
673 + 425 == 1098
674 + 829 == 1503
675 + 423 == 1098
679 + 824 == 1503
724 + 365 == 1089
725 + 364 == 1089
742 + 356 == 1098
743 + 859 == 1602
746 + 352 == 1098
746 + 289 == 1035
749 + 853 == 1602
749 + 286 == 1035
752 + 346 == 1098
753 + 849 == 1602
756 + 342 == 1098
759 + 843 == 1602
764 + 325 == 1089
764 + 289 == 1053
765 + 324 == 1089
769 + 284 == 1053
784 + 269 == 1053
786 + 249 == 1035
789 + 246 == 1035
789 + 264 == 1053
824 + 679 == 1503
826 + 479 == 1305
829 + 476 == 1305
829 + 674 == 1503
843 + 759 == 1602
847 + 359 == 1206
849 + 357 == 1206
849 + 753 == 1602
853 + 749 == 1602
857 + 349 == 1206
859 + 347 == 1206
859 + 743 == 1602
874 + 629 == 1503
876 + 429 == 1305
879 + 426 == 1305
879 + 624 == 1503
--
96 solutions