Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. //
  2. // Created by syh on 19-3-14.
  3. //
  4.  
  5. #include <iostream>
  6. #include <vector>
  7. #include <algorithm>
  8.  
  9. using namespace std;
  10.  
  11. int len;
  12.  
  13. bool check(vector<int> num) {
  14. return (num[0] + num[1] == num[2]) && (num[3] - num[4] == num[5])
  15. && (num[6] * num[7] == num[8]) && (num[9] / num[10] == num[11]);
  16. }
  17.  
  18. void f(int level, vector<int> num) {
  19. if (level == 12) {
  20. if (check(num))
  21. len++;
  22. return;
  23. }
  24.  
  25. if (level == 2) {
  26. if (num[0] + num[1] > 13) return;
  27. }
  28. if (level == 5) {
  29. if (num[3] - num[4] <= 0) return;;
  30. }
  31. if (level == 8) {
  32. if (num[6] * num[7] > 13) return;
  33. }
  34. if (level == 11)
  35. if (num[9] % num[10] != 0)return; // 注意除法截断,必须能整除
  36.  
  37. for (int i = 1; i <= 13; i++) {
  38. if (find(num.begin(), num.end(), i) != num.end()) // 该数字已出现
  39. continue;
  40. if (level == 2 && i != (num[0] + num[1])) continue;
  41. if (level == 5 && i != (num[3] - num[4])) continue;
  42. if (level == 8 && i != (num[6] * num[7])) continue;
  43. if (level == 11 && i != (num[9] / num[10])) continue;
  44. num.push_back(i);
  45. f(level + 1, num);
  46. num.erase(num.end() - 1);
  47. }
  48. }
  49.  
  50. int main() {
  51. vector<int> num;
  52. f(0, num);
  53. cout << len << endl;
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement