24Point

import java.util.HashSet;

public class Game24Point {
private static int n = 4;
private static int size = (int) Math.pow(2, n);
private static HashSet<Double>[] S = new HashSet[size];
private static double[] array = { 5, 5, 5, 1 };
private static double targetNum = 576;

private static boolean useFactorial = true;

private static void init() {
for (int i = 0; i < size; i++) {
S[i] = null;
}
for (int i = 0; i < n; i++) {
int temp = (int) Math.pow(2, i);
S[temp] = new HashSet<Double>();
S[temp].add(array[i]);
if (useFactorial) {
S[temp].add(new Double(factorial((int) array[i])));
}
}
for (int i = 0; i < size; i++) {
S[i] = f(i);
}
Check(S[(int) Math.pow(2, n) - 1]);
}

private static void Check(HashSet<Double> arrayList) {
for (Double temp : arrayList) {
if (Math.abs(temp - targetNum) < 1E-6) {
System.out.println("Succeed");
}
}

}

private static HashSet<Double> f(int i) {
if (S[i] != null) {
return S[i];
}
S[i] = new HashSet<Double>();
for (int x = 1; x < i; x++) {
if ((x & i) == x) {
for (Double temp : Fork(f(x), f(i - x))) {
S[i].add(temp);
// if (useFactorial) {
// if (Math.abs(temp - (int) temp.doubleValue()) < 1E-6
// && temp > 0) {
// S[i].add(new Double(factorial((int) temp
// .doubleValue())));
// }
// }
}
}
}
return S[i];
}

private static HashSet<Double> Fork(HashSet<Double> hashSet,
HashSet<Double> hashSet2) {
HashSet<Double> ret = new HashSet<Double>();
for (Double a : hashSet) {
for (Double b : hashSet2) {
ret.add(a + b);
ret.add(a - b);
ret.add(b - a);
ret.add(a * b);
if (b != 0) {
ret.add(a / b);
}
if (a != 0) {
ret.add(b / a);
}
}
}
return ret;
}

private static int factorial(int x) {
if (x < 0) {
throw new IllegalArgumentException("x must be>=0");
}
int fact = 1;
for (int i = 2; i <= x; i++) {
fact *= i;
}
return fact;
}

/**
* @param args
*/
public static void main(String[] args) {
init();

}

}
point.x 94 , point.y 0 point.x 94 , point.y 1 point.x 94 , point.y 2 point.x 94 , point.y 3 point.x 94 , point.y 4 point.x 94 , point.y 5 point.x 94 , point.y 6 point.x 94 , point.y 7 point.x 94 , point.y 8 point.x 94 , point.y 9 point.x 94 , point.y 10 point.x 94 , point.y 11 point.x 94 , point.y 12 point.x 94 , point.y 13 point.x 94 , point.y 14 point.x 94 , point.y 15 point.x 94 , point.y 16 point.x 94 , point.y 17 point.x 94 , point.y 18 point.x 94 , point.y 19 point.x 94 , point.y 20 point.x 95 , point.y 21 point.x 95 , point.y 22 point.x 94 , point.y 23 point.x 94 , point.y 24 point.x 94 , point.y 25 point.x 94 , point.y 26 point.x 94 , point.y 27 point.x 94 , point.y 28 point.x 94 , point.y 29 point.x 94 , point.y 30 point.x 94 , point.y 31 point.x 94 , point.y 32 point.x 94 , point.y 33 point.x 94 , point.y 34 point.x 94 , point.y 35 point.x 94 , point.y 36 point.x 94 , point.y 37 point.x 94 , point.y 38 point.x 94 , point.y 39 point.x 94 , point.y 40 point.x 94 , point.y 41 point.x 94 , point.y 42 point.x 94 , point.y 43 point.x 94 , point.y 44 point.x 95 , point.y 45 point.x 95 , point.y 46 point.x 94 , point.y 47 point.x 94 , point.y 48 point.x 94 , point.y 49 point.x 94 , point.y 50 point.x 94 , point.y 51 point.x 94 , point.y 52 point.x 94 , point.y 53 point.x 94 , point.y 54 point.x 94 , point.y 55 point.x 94 , point.y 56 point.x 94 , point.y 57 point.x 94 , point.y 58 point.x 94 , point.y 59 point.x 95 , point.y 60 point.x 95 , point.y 61 point.x 95 , point.y 62 point.x 95 , point.y 63 point.x 94 , point.y 64 point.x 94 , point.y 65 point.x 94 , point.y 66 point.x 94 , point.y 67 point.x 94 , point.y 68 point.x 94 , point.y 69 point.x 94 , point.y 70 point.x 94 , point.y 71 point.x 95 , point.y 72 point.x 95 , point.y 73 point.x 95 , point.y 74 point.x 95 , point.y 75 point.x 94 , point.y 76 point.x 94 , point.y 77 point.x 94 , point.y 78 point.x 94 , point.y 79 point.x 95 , point.y 80 point.x 94 , point.y 81 point.x 94 , point.y 82 point.x 94 , point.y 83 point.x 94 , point.y 84 point.x 94 , point.y 85 point.x 94 , point.y 86 point.x 94 , point.y 87 point.x 95 , point.y 88 point.x 95 , point.y 89 point.x 95 , point.y 90 point.x 95 , point.y 91 point.x 95 , point.y 92 point.x 95 , point.y 93 point.x 95 , point.y 94 point.x 95 , point.y 95 point.x 95 , point.y 96 point.x 95 , point.y 97 point.x 95 , point.y 98 point.x 95 , point.y 99 point.x 95 , point.y 100 point.x 95 , point.y 101 point.x 95 , point.y 102 point.x 95 , point.y 103 point.x 95 , point.y 104 point.x 95 , point.y 105 point.x 95 , point.y 106 point.x 95 , point.y 107 point.x 95 , point.y 108 point.x 95 , point.y 109 point.x 95 , point.y 110 point.x 95 , point.y 111 point.x 95 , point.y 112 point.x 95 , point.y 113 point.x 95 , point.y 114 point.x 95 , point.y 115 point.x 95 , point.y 116 point.x 95 , point.y 117 point.x 95 , point.y 118 point.x 95 , point.y 119 point.x 95 , point.y 120 point.x 95 , point.y 121 point.x 95 , point.y 122 point.x 95 , point.y 123 point.x 95 , point.y 124 point.x 95 , point.y 125 point.x 95 , point.y 126 point.x 95 , point.y 127 point.x 95 , point.y 128 point.x 95 , point.y 129 point.x 95 , point.y 130 point.x 95 , point.y 131 point.x 95 , point.y 132 point.x 95 , point.y 133 point.x 96 , point.y 134 point.x 96 , point.y 135 point.x 96 , point.y 136 point.x 96 , point.y 137 point.x 97 , point.y 138 point.x 96 , point.y 139 point.x 96 , point.y 140 point.x 96 , point.y 141 point.x 95 , point.y 142 point.x 95 , point.y 143 point.x 95 , point.y 144 point.x 95 , point.y 145 point.x 95 , point.y 146 point.x 95 , point.y 147 point.x 95 , point.y 148 point.x 95 , point.y 149 point.x 95 , point.y 150 point.x 95 , point.y 151 point.x 95 , point.y 152 point.x 95 , point.y 153 point.x 95 , point.y 154 point.x 95 , point.y 155 point.x 95 , point.y 156 point.x 95 , point.y 157 point.x 95 , point.y 158 point.x 95 , point.y 159 point.x 95 , point.y 160 point.x 95 , point.y 161 point.x 95 , point.y 162 point.x 95 , point.y 163 point.x 95 , point.y 164 point.x 95 , point.y 165 point.x 95 , point.y 166 point.x 95 , point.y 167 point.x 96 , point.y 168 point.x 95 , point.y 169 point.x 95 , point.y 170 point.x 95 , point.y 171 point.x 95 , point.y 172 point.x 95 , point.y 173 point.x 95 , point.y 174 point.x 95 , point.y 175 point.x 95 , point.y 176 point.x 95 , point.y 177 point.x 95 , point.y 178 point.x 95 , point.y 179 point.x 95 , point.y 180 point.x 95 , point.y 181 point.x 95 , point.y 182 point.x 95 , point.y 183 point.x 96 , point.y 184 point.x 96 , point.y 185 point.x 95 , point.y 186 point.x 95 , point.y 187 point.x 95 , point.y 188 point.x 95 , point.y 189 point.x 96 , point.y 190 point.x 96 , point.y 191 point.x 96 , point.y 192 point.x 96 , point.y 193 point.x 96 , point.y 194 point.x 96 , point.y 195 point.x 96 , point.y 196 point.x 96 , point.y 197 point.x 96 , point.y 198 point.x 96 , point.y 199 point.x 96 , point.y 200 point.x 96 , point.y 201 point.x 96 , point.y 202 point.x 96 , point.y 203 point.x 96 , point.y 204 point.x 96 , point.y 205 point.x 96 , point.y 206 point.x 96 , point.y 207 point.x 96 , point.y 208 point.x 96 , point.y 209 point.x 96 , point.y 210 point.x 96 , point.y 211 point.x 96 , point.y 212 point.x 96 , point.y 213 point.x 96 , point.y 214 point.x 96 , point.y 215 point.x 96 , point.y 216 point.x 96 , point.y 217 point.x 96 , point.y 218 point.x 96 , point.y 219 point.x 96 , point.y 220 point.x 96 , point.y 221 point.x 96 , point.y 222 point.x 96 , point.y 223 point.x 96 , point.y 224 point.x 96 , point.y 225 point.x 96 , point.y 226 point.x 96 , point.y 227 point.x 96 , point.y 228 point.x 96 , point.y 229 point.x 96 , point.y 230 point.x 96 , point.y 231 point.x 96 , point.y 232 point.x 96 , point.y 233 point.x 96 , point.y 234 point.x 96 , point.y 235 point.x 96 , point.y 236 point.x 96 , point.y 237 point.x 96 , point.y 238 point.x 96 , point.y 239 point.x 96 , point.y 240 point.x 96 , point.y 241 point.x 96 , point.y 242 point.x 96 , point.y 243 point.x 96 , point.y 244 point.x 96 , point.y 245 point.x 96 , point.y 246 point.x 96 , point.y 247 point.x 96 , point.y 248 point.x 96 , point.y 249 point.x 96 , point.y 250 point.x 96 , point.y 251 point.x 96 , point.y 252 point.x 96 , point.y 253 point.x 96 , point.y 254 point.x 96 , point.y 255 point.x 96 , point.y 256 point.x 96 , point.y 257 point.x 96 , point.y 258 point.x 96 , point.y 259 point.x 96 , point.y 260 point.x 96 , point.y 261 point.x 96 , point.y 262 point.x 96 , point.y 263 point.x 96 , point.y 264 point.x 96 , point.y 265 point.x 96 , point.y 266 point.x 96 , point.y 267 point.x 96 , point.y 268 point.x 96 , point.y 269 point.x 96 , point.y 270 point.x 96 , point.y 271 point.x 96 , point.y 272 point.x 96 , point.y 273 point.x 96 , point.y 274 point.x 96 , point.y 275 point.x 96 , point.y 276 point.x 96 , point.y 277 point.x 96 , point.y 278 point.x 96 , point.y 279 point.x 96 , point.y 280 point.x 96 , point.y 281 point.x 97 , point.y 282 point.x 97 , point.y 283 point.x 97 , point.y 284 point.x 97 , point.y 285 point.x 97 , point.y 286 point.x 96 , point.y 287 point.x 96 , point.y 288 point.x 96 , point.y 289 point.x 96 , point.y 290 point.x 96 , point.y 291 point.x 96 , point.y 292 point.x 96 , point.y 293 point.x 96 , point.y 294 point.x 96 , point.y 295 point.x 96 , point.y 296 point.x 96 , point.y 297 point.x 96 , point.y 298 point.x 96 , point.y 299 point.x 97 , point.y 299 point.x 98 , point.y 299 point.x 98 , point.y 298 point.x 98 , point.y 297 point.x 98 , point.y 296 point.x 98 , point.y 295 point.x 98 , point.y 294 point.x 98 , point.y 293 point.x 98 , point.y 292 point.x 98 , point.y 291 point.x 98 , point.y 290 point.x 98 , point.y 289 point.x 98 , point.y 288 point.x 98 , point.y 287 point.x 99 , point.y 286 point.x 99 , point.y 285 point.x 99 , point.y 284 point.x 99 , point.y 283 point.x 99 , point.y 282 point.x 98 , point.y 281 point.x 98 , point.y 280 point.x 98 , point.y 279 point.x 98 , point.y 278 point.x 98 , point.y 277 point.x 98 , point.y 276 point.x 98 , point.y 275 point.x 98 , point.y 274 point.x 98 , point.y 273 point.x 98 , point.y 272 point.x 98 , point.y 271 point.x 98 , point.y 270 point.x 98 , point.y 269 point.x 98 , point.y 268 point.x 98 , point.y 267 point.x 98 , point.y 266 point.x 98 , point.y 265 point.x 98 , point.y 264 point.x 98 , point.y 263 point.x 98 , point.y 262 point.x 98 , point.y 261 point.x 98 , point.y 260 point.x 98 , point.y 259 point.x 98 , point.y 258 point.x 98 , point.y 257 point.x 98 , point.y 256 point.x 98 , point.y 255 point.x 98 , point.y 254 point.x 98 , point.y 253 point.x 98 , point.y 252 point.x 98 , point.y 251 point.x 98 , point.y 250 point.x 98 , point.y 249 point.x 98 , point.y 248 point.x 98 , point.y 247 point.x 98 , point.y 246 point.x 98 , point.y 245 point.x 98 , point.y 244 point.x 98 , point.y 243 point.x 98 , point.y 242 point.x 98 , point.y 241 point.x 98 , point.y 240 point.x 98 , point.y 239 point.x 98 , point.y 238 point.x 98 , point.y 237 point.x 98 , point.y 236 point.x 98 , point.y 235 point.x 98 , point.y 234 point.x 98 , point.y 233 point.x 98 , point.y 232 point.x 98 , point.y 231 point.x 98 , point.y 230 point.x 98 , point.y 229 point.x 98 , point.y 228 point.x 98 , point.y 227 point.x 98 , point.y 226 point.x 98 , point.y 225 point.x 98 , point.y 224 point.x 98 , point.y 223 point.x 98 , point.y 222 point.x 98 , point.y 221 point.x 98 , point.y 220 point.x 98 , point.y 219 point.x 98 , point.y 218 point.x 98 , point.y 217 point.x 98 , point.y 216 point.x 98 , point.y 215 point.x 98 , point.y 214 point.x 98 , point.y 213 point.x 98 , point.y 212 point.x 98 , point.y 211 point.x 98 , point.y 210 point.x 98 , point.y 209 point.x 98 , point.y 208 point.x 98 , point.y 207 point.x 98 , point.y 206 point.x 98 , point.y 205 point.x 98 , point.y 204 point.x 98 , point.y 203 point.x 98 , point.y 202 point.x 98 , point.y 201 point.x 98 , point.y 200 point.x 98 , point.y 199 point.x 98 , point.y 198 point.x 98 , point.y 197 point.x 98 , point.y 196 point.x 98 , point.y 195 point.x 98 , point.y 194 point.x 98 , point.y 193 point.x 98 , point.y 192 point.x 98 , point.y 191 point.x 98 , point.y 190 point.x 97 , point.y 189 point.x 97 , point.y 188 point.x 97 , point.y 187 point.x 97 , point.y 186 point.x 98 , point.y 185 point.x 98 , point.y 184 point.x 97 , point.y 183 point.x 97 , point.y 182 point.x 97 , point.y 181 point.x 97 , point.y 180 point.x 97 , point.y 179 point.x 97 , point.y 178 point.x 97 , point.y 177 point.x 97 , point.y 176 point.x 97 , point.y 175 point.x 97 , point.y 174 point.x 97 , point.y 173 point.x 97 , point.y 172 point.x 97 , point.y 171 point.x 97 , point.y 170 point.x 98 , point.y 169 point.x 98 , point.y 168 point.x 97 , point.y 167 point.x 97 , point.y 166 point.x 97 , point.y 165 point.x 97 , point.y 164 point.x 97 , point.y 163 point.x 97 , point.y 162 point.x 97 , point.y 161 point.x 97 , point.y 160 point.x 97 , point.y 159 point.x 97 , point.y 158 point.x 97 , point.y 157 point.x 97 , point.y 156 point.x 97 , point.y 155 point.x 97 , point.y 154 point.x 97 , point.y 153 point.x 97 , point.y 152 point.x 97 , point.y 151 point.x 97 , point.y 150 point.x 97 , point.y 149 point.x 97 , point.y 148 point.x 97 , point.y 147 point.x 97 , point.y 146 point.x 97 , point.y 145 point.x 97 , point.y 144 point.x 97 , point.y 143 point.x 97 , point.y 142 point.x 98 , point.y 141 point.x 98 , point.y 140 point.x 99 , point.y 139 point.x 99 , point.y 138 point.x 98 , point.y 137 point.x 98 , point.y 136 point.x 98 , point.y 135 point.x 98 , point.y 134 point.x 97 , point.y 133 point.x 97 , point.y 132 point.x 97 , point.y 131 point.x 97 , point.y 130 point.x 97 , point.y 129 point.x 97 , point.y 128 point.x 97 , point.y 127 point.x 97 , point.y 126 point.x 97 , point.y 125 point.x 97 , point.y 124 point.x 97 , point.y 123 point.x 97 , point.y 122 point.x 97 , point.y 121 point.x 97 , point.y 120 point.x 97 , point.y 119 point.x 97 , point.y 118 point.x 97 , point.y 117 point.x 97 , point.y 116 point.x 97 , point.y 115 point.x 97 , point.y 114 point.x 97 , point.y 113 point.x 97 , point.y 112 point.x 97 , point.y 111 point.x 97 , point.y 110 point.x 97 , point.y 109 point.x 97 , point.y 108 point.x 97 , point.y 107 point.x 97 , point.y 106 point.x 97 , point.y 105 point.x 97 , point.y 104 point.x 97 , point.y 103 point.x 97 , point.y 102 point.x 97 , point.y 101 point.x 97 , point.y 100 point.x 97 , point.y 99 point.x 97 , point.y 98 point.x 97 , point.y 97 point.x 97 , point.y 96 point.x 97 , point.y 95 point.x 97 , point.y 94 point.x 97 , point.y 93 point.x 97 , point.y 92 point.x 97 , point.y 91 point.x 97 , point.y 90 point.x 97 , point.y 89 point.x 97 , point.y 88 point.x 96 , point.y 87 point.x 96 , point.y 86 point.x 96 , point.y 85 point.x 96 , point.y 84 point.x 96 , point.y 83 point.x 96 , point.y 82 point.x 97 , point.y 81 point.x 97 , point.y 80 point.x 96 , point.y 79 point.x 96 , point.y 78 point.x 96 , point.y 77 point.x 96 , point.y 76 point.x 97 , point.y 75 point.x 97 , point.y 74 point.x 97 , point.y 73 point.x 97 , point.y 72 point.x 96 , point.y 71 point.x 96 , point.y 70 point.x 96 , point.y 69 point.x 96 , point.y 68 point.x 96 , point.y 67 point.x 96 , point.y 66 point.x 96 , point.y 65 point.x 96 , point.y 64 point.x 97 , point.y 63 point.x 97 , point.y 62 point.x 97 , point.y 61 point.x 97 , point.y 60 point.x 96 , point.y 59 point.x 96 , point.y 58 point.x 96 , point.y 57 point.x 96 , point.y 56 point.x 96 , point.y 55 point.x 96 , point.y 54 point.x 96 , point.y 53 point.x 96 , point.y 52 point.x 96 , point.y 51 point.x 96 , point.y 50 point.x 96 , point.y 49 point.x 96 , point.y 48 point.x 96 , point.y 47 point.x 97 , point.y 46 point.x 97 , point.y 45 point.x 96 , point.y 44 point.x 96 , point.y 43 point.x 96 , point.y 42 point.x 96 , point.y 41 point.x 96 , point.y 40 point.x 96 , point.y 39 point.x 96 , point.y 38 point.x 96 , point.y 37 point.x 96 , point.y 36 point.x 96 , point.y 35 point.x 96 , point.y 34 point.x 96 , point.y 33 point.x 96 , point.y 32 point.x 96 , point.y 31 point.x 96 , point.y 30 point.x 96 , point.y 29 point.x 96 , point.y 28 point.x 96 , point.y 27 point.x 96 , point.y 26 point.x 96 , point.y 25 point.x 96 , point.y 24 point.x 96 , point.y 23 point.x 97 , point.y 22 point.x 97 , point.y 21 point.x 96 , point.y 20 point.x 96 , point.y 19 point.x 96 , point.y 18 point.x 96 , point.y 17 point.x 96 , point.y 16 point.x 96 , point.y 15 point.x 96 , point.y 14 point.x 96 , point.y 13 point.x 96 , point.y 12 point.x 96 , point.y 11 point.x 96 , point.y 10 point.x 96 , point.y 9 point.x 96 , point.y 8 point.x 96 , point.y 7 point.x 96 , point.y 6 point.x 96 , point.y 5 point.x 96 , point.y 4 point.x 96 , point.y 3 point.x 96 , point.y 2 point.x 96 , point.y 1 point.x 96 , point.y 0 point.x 95 , point.y 0 以上数据拟合成一条直线
07-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值