Java > Logic-2 >evenlySpaced (CodingBat Solution)

Problem:

Given three ints, a b c, one of them is small, one is medium and one is large. Return true if the three values are evenly spaced, so the difference between small and medium is the same as the difference between medium and large.

evenlySpaced(2, 4, 6) → true
evenlySpaced(4, 6, 2) → true
evenlySpaced(4, 6, 3) → false


Solution:

public boolean evenlySpaced(int a, int b, int c) {
int diff1 = 0;
int diff2 = 0;
int diff3 = 0;

if(a==b && a ==c)
return true;

if(a == b || b == c || a == c)
return false; 

diff1 = Math.abs(a - b); 
diff2 = Math.abs(a - c); 
diff3 = Math.abs(b - c); 

if(diff1 == diff2)
return true;
if(diff1 == diff3)
return true;
if(diff2 == diff3)
return true;

return false;
}



27 comments :

  1. public boolean evenlySpaced(int a, int b, int c) {
    int ab = Math.abs(a - b);
    int bc = Math.abs(b - c);
    int ac = Math.abs(a - c);
    return (ab == bc && ac == ab + bc) || (ab == ac && bc == ab + ac) || (bc == ac && ab == ac + bc);
    }

    ReplyDelete
    Replies
    1. How to print conditions true or false in this program

      Delete
  2. public boolean evenlySpaced(int a, int b, int c) {
    return ((a+b) == 2*c) || ((a+c) == 2*b) || ((b+c) == 2*a);
    }

    ReplyDelete
  3. public boolean evenlySpaced(int a, int b, int c) {

    int small = Math.min(a,b);
    small = Math.min(small,c);

    int large = Math.max(a,b);
    large = Math.max(large,c);

    double average = (small + large) / 2.;

    return a == average || b == average || c == average;

    }

    ReplyDelete
  4. public boolean evenlySpaced(int a, int b, int c) {
    int[] array={a,b,c};
    Arrays.sort(array);
    return array[2]-array[1]==array[1]-array[0];
    }

    ReplyDelete
  5. public boolean evenlySpaced(int a, int b, int c) {

    int temp = 0;

    if (a > c) {
    temp = a;
    a = c;
    c = temp;
    }

    if (a > b) {
    temp = a;
    a = b;
    b = temp;
    }

    if (b > c) {
    temp = b;
    b = c;
    c = temp;
    }

    return (Math.abs(a-b) == Math.abs(b-c)) ? true : false ;

    }

    ReplyDelete
  6. public boolean evenlySpaced(int a, int b, int c) {
    int x=0,y=0,z=0;
    x=Math.abs(a-b);
    y=Math.abs(b-c);
    z=Math.abs(a-c);
    if(a==b&&b==c&&c==b) return true;
    if(a==b||b==c||c==b) return false;
    if(x==y||y==z||x==z) return true;
    return false;
    }

    ReplyDelete
  7. public boolean evenlySpaced(int a, int b, int c) {
    int sum = a+b+c;

    if (sum%3!=0)
    return false;

    if (sum/3!=a && sum/3!=b && sum/3!=c)
    return false;

    return true;
    }

    ReplyDelete
  8. int[] arr = {a, b, c};
    Arrays.sort(arr);

    return (arr[1] - arr[0] == arr[2] - arr[1]);

    ReplyDelete
  9. public boolean evenlySpaced(int a, int b, int c) {
    int max = Math.max(a, Math.max(b, c));
    int min = Math.min(a, Math.min(b, c));
    int mid = a + b + c - max - min;

    return max - mid == mid - min;
    }

    ReplyDelete
  10. public boolean evenlySpaced(int a, int b, int c) {

    return (a*3==(a+b+c) || b*3==(a+b+c) || c*3==(a+b+c));
    }

    ReplyDelete
  11. return (b-a==c-b||b-a==b-c|| a-c==b-a||a-c==c-b) ;

    ReplyDelete
  12. return (b-a==c-b||b-a==b-c|| a-c==b-a||a-c==c-b) ;

    ReplyDelete
  13. public boolean evenlySpaced(int a, int b, int c) {
    int x = Math.abs(a-b);
    int y = Math.abs(b-c);
    int z = Math.abs(a-c);

    return (x==y || y==2*z || x==2*y );
    }

    ReplyDelete
  14. public boolean evenlySpaced(int a, int b, int c) {

    return (a - b == b - c) || (a - c == c - b) ||(b-a==a-c);
    }

    ReplyDelete
  15. public boolean evenlySpaced(int a, int b, int c) {
    if(a-b == b-c) return true;
    if(b-c == c-a) return true;
    if(c-a == a-b)return true;
    return false;
    }

    ReplyDelete
  16. public boolean evenlySpaced(int a, int b, int c) {
    int d = (a + b + c) / 3;
    if ((a + b + c) % 3 > 0) return false;
    return (a == d || b == d || c == d);
    }

    ReplyDelete
  17. public boolean evenlySpaced(int a, int b, int c) {
    int s=a+b+c;
    if((Math.max(Math.max(a,b),c)+Math.min(Math.min(a,b),c))/2*3==s
    && (Math.max(Math.max(a,b),c)+Math.min(Math.min(a,b),c))%2==0)
    return true;
    return false;
    }

    ReplyDelete
  18. public boolean evenlySpaced(int a, int b, int c) {
    int sum = a+b+c;
    if (3*a==sum ){
    return true;
    }
    if (3*b==sum){
    return true;
    }
    if (3*c==sum){
    return true;
    }
    return false;
    }

    ReplyDelete
  19. public boolean evenlySpaced(int a, int b, int c) {
    int min = Math.min(Math.min(a, b), c);
    int max = Math.max(Math.max(a, b), c);
    int medium = 0;

    if (a != max && a != min) medium = a;
    else if (b != max && b != min) medium = b;
    else if (c != max && c != min) medium = c;
    return medium - min == max - medium || a == b && b == c;

    }

    ReplyDelete
  20. public boolean evenlySpaced(int a, int b, int c) {
    return a+b==c*2||a+c==b*2||b+c==a*2;


    }

    ReplyDelete
  21. public boolean evenlySpaced(int a, int b, int c) {
    int max=Math.max(a,b);
    int large=Math.max(max,c);
    int min=Math.min(a,b);
    int small=Math.min(min,c);
    int mid=(a!=large && a!=small)? a : (b!=large && b!=small) ?b : c;
    return large-mid==mid-small ?true : false;
    }

    ReplyDelete
  22. public boolean evenlySpaced(int a, int b, int c) {
    int t=a+b+c;
    return a==b && b==c && c==a? true :a==b || b==c ? false : t%Math.abs(a-b)==0 && t%Math.abs(b-c)==0;
    }

    ReplyDelete

Follow Me

If you like our content, feel free to follow me to stay updated.

Subscribe

Enter your email address:

We hate spam as much as you do.

Upload Material

Got an exam, project, tutorial video, exercise, solutions, unsolved problem, question, solution manual? We are open to any coding material. Why not upload?

Upload

Copyright © 2012 - 2014 Java Problems  --  About  --  Attribution  --  Privacy Policy  --  Terms of Use  --  Contact