Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Quick Java solution to:
- http://beust.com/weblog/2011/10/30/a-new-coding-challenge
- @Test
- public void doIt() {
- final int n = 40;
- int[] max = new int[5];
- for (int i = 1; i < n; i++) {
- for (int j = i + 1; j < n; j++) {
- for (int k = j + 1; k < n; k++) {
- for (int l = k + 1; l < n; l++) {
- final int v = cnt(new int[]{i, j, k, l});
- if ( v > max[0] ) {
- max = new int[] {v,i,j,k,l};
- }
- }
- }
- }
- }
- System.out.println( " max: " + max[0] + " (" + max[1] + ", " + max[2] + ", " + max[3] + ", "
- + max[4] + ")" );
- }
- public int cnt( final int[] a ) {
- int cnt = 0;
- for (int p = 1; p <= 40; p++) {
- boolean b = false;
- for (int i = 0; i < 4; i++) {
- b = b || p == a[i];
- }
- for (int i = 0; i < 4; i++) {
- for (int j = i + 1; j < 4; j++) {
- b = b || p == a[i] + a[j];
- b = b || p == a[i] - a[j];
- b = b || p == a[j] - a[i];
- }
- }
- for ( int i = 0; i < 4; i++ ) {
- for ( int j = i + 1; j < 4; j++ ) {
- for ( int k = j + 1; k < 4; k++ ) {
- b = b || p == +a[i]+a[j]+a[k];
- b = b || p == +a[i]+a[j]-a[k];
- b = b || p == +a[i]-a[j]+a[k];
- b = b || p == -a[i]+a[j]+a[k];
- b = b || p == -a[i]-a[j]+a[k];
- b = b || p == -a[i]+a[j]-a[k];
- b = b || p == +a[i]-a[j]-a[k];
- }
- }
- }
- b = b || p == +a[0]+a[1]+a[2]+a[3];
- b = b || p == -a[0]+a[1]+a[2]+a[3];
- b = b || p == +a[0]-a[1]+a[2]+a[3];
- b = b || p == +a[0]+a[1]-a[2]+a[3];
- b = b || p == +a[0]+a[1]-a[2]-a[3];
- b = b || p == -a[0]-a[1]+a[2]+a[3];
- b = b || p == -a[0]+a[1]-a[2]+a[3];
- b = b || p == -a[0]+a[1]+a[2]-a[3];
- b = b || p == +a[0]-a[1]-a[2]+a[3];
- b = b || p == +a[0]-a[1]+a[2]-a[3];
- b = b || p == +a[0]+a[1]-a[2]-a[3];
- b = b || p == +a[0]-a[1]-a[2]-a[3];
- b = b || p == -a[0]+a[1]-a[2]-a[3];
- b = b || p == -a[0]-a[1]+a[2]-a[3];
- b = b || p == -a[0]-a[1]-a[2]+a[3];
- cnt += b ? 1 : 0;
- }
- return cnt;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement