• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/30

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

30 Cards in this Set

  • Front
  • Back

/* Given a day of the week encoded as 0=Sun, 1=Mon, 2=Tue, ...6=Sat, and a * boolean indicating if we are on vacation, return a string of the form * "7:00" indicating when the alarm clock should ring. Weekdays, the alarm * should be "7:00" and on the weekend it should be "10:00". Unless we are on * vacation -- then on weekdays it should be "10:00" and weekends it should * be "off". */

public String alarmClock(int day, boolean vacation) {


if(vacation) {


if(day == 0 || day == 6)


return "off";


else


return "10:00";


}


if(day == 0 || day == 6) return "10:00";


return "7:00";


}

/* Your cell phone rings. Return true if you should answer it. Normally you * answer, except in the morning you only answer if it is your mom calling. * In all cases, if you are asleep, you do not answer. */

public boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep) {


if(isAsleep)


return false;


if(isMorning && !isMom)


return false;


return true;




}

/* You have a blue lottery ticket, with ints a, b, and c on it. This makes * three pairs, which we'll call ab, bc, and ac. Consider the sum of the * numbers in each pair. If any pair sums to exactly 10, the result is 10. * Otherwise if the ab sum is exactly 10 more than either bc or ac sums, the * result is 5. Otherwise the result is 0. */

public int blueTicket(int a, int b, int c) {




int ab = a + b;


int bc = b + c;


int ac = a + c;



if(ab == 10 || bc == 10 || ac == 10)


return 10;




if(ab == bc + 10 || ab == ac + 10)


return 5;




return 0;




}

/* You are driving a little too fast, and a police officer stops you. Write * code to compute the result, encoded as an int value: 0=no ticket, 1=small * ticket, 2=big ticket. If speed is 60 or less, the result is 0. If speed is * between 61 and 80 inclusive, the result is 1. If speed is 81 or more, the * result is 2. Unless it is your birthday -- on that day, your speed can be * 5 higher in all cases. */

public int caughtSpeeding(int speed, boolean isBirthday) {


if(isBirthday) {


if(speed <= 65) {


return 0;


} else if(66 <= speed && speed <= 85) {


return 1;


} else if(86 <= speed) {


return 2;


}


} if(speed <= 60) {


return 0;


} else if(61 <= speed && speed <= 80) {


return 1;


} else {


return 2;


}


}

/* When squirrels get together for a party, they like to have cigars. A * squirrel party is successful when the number of cigars is between 40 and * 60, inclusive. Unless it is the weekend, in which case there is no upper * bound on the number of cigars. Return true if the party with the given * values is successful, or false otherwise. */

public boolean cigarParty(int cigars, boolean isWeekend) {


if(isWeekend) return 40 <= cigars; return 40 <= cigars && cigars <= 60;


}

/* You and your date are trying to get a table at a restaurant. The parameter * "you" is the stylishness of your clothes, in the range 0..10, and "date" * is the stylishness of your date's clothes. The result getting the table is * encoded as an int value with 0=no, 1=maybe, 2=yes. If either of you is * very stylish, 8 or more, then the result is 2 (yes). With the exception * that if either of you has style of 2 or less, then the result is 0 (no). * Otherwise the result is 1 (maybe). */

public int dateFashion(int you, int date) {


if(you <= 2 || date <= 2)


return 0;




if(you >= 8 || date >= 8)


return 2;




return 1;


}

/* Given an int n, return the string form of the number followed by "!". So * the int 6 yields "6!". Except if the number is divisible by 3 use "Fizz" * instead of the number, and if the number is divisible by 5 use "Buzz", and * if divisible by both 3 and 5, use "FizzBuzz". */

public String fizzString2(int n) {


if(n % 15 == 0)


return "FizzBuzz!";




if(n % 3 == 0)


return "Fizz!";




if(n % 5 == 0)


return "Buzz!";



return n + "!";




}

/* Given a string str, if the string starts with "f" return "Fizz". If the * string ends with "b" return "Buzz". If both the "f" and "b" conditions are * true, return "FizzBuzz". In all other cases, return the string unchanged. */

public String fizzString(String str) {


if(str.length() > 0 &&


str.charAt(0) == 'f' && str.charAt(str.length() - 1) == 'b')


return "FizzBuzz";




if(str.length() > 0 && str.charAt(0) == 'f')


return "Fizz";




if(str.length() > 0 && str.charAt(str.length() - 1) == 'b') return "Buzz";




return str;




}

/* You have a green lottery ticket, with ints a, b, and c on it. If the * numbers are all different from each other, the result is 0. If all of the * numbers are the same, the result is 20. If two of the numbers are the * same, the result is 10. */

public int greenTicket(int a, int b, int c) {


if(a == b && b == c)


return 20;


if(a == b || a == c || b == c)


return 10;




return 0;




}

/* Given a number n, return true if n is in the range 1..10, inclusive. * Unless "outsideMode" is true, in which case return true if the number is * less or equal to 1, or greater or equal to 10. */

public boolean in1To10(int n, boolean outsideMode) {


if(outsideMode)


return n <= 1 || 10 <= n;




return 1 <= n && n <= 10;




}

/* Given three ints, a b c, return true if b is greater than a, and c is * greater than b. However, with the exception that if "bOk" is true, b does * not need to be greater than a. */

public boolean inOrder(int a, int b, int c, boolean bOk) {


if(bOk) return c > b;




return b > a && c > b;




}

/* Given three ints, a b c, return true if they are in strict increasing * order, such as 2 5 11, or 5 6 7, but not 6 5 7 or 5 5 7. However, with the * exception that if "equalOk" is true, equality is allowed, such as * 5 5 7 or 5 5 5. */

public boolean inOrderEqual(int a, int b, int c, boolean equalOk) {




if(equalOk)


return a <= b && b <= c;




return a < b && b < c;




}

/* Given three ints, a b c, return true if two or more of them have the same * rightmost digit. The ints are non-negative. */

public boolean lastDigit(int a, int b, int c) {


return (a % 10 == b % 10) || (a % 10 == c % 10) || (b % 10 == c % 10);




}

/* Return true if the given non-negative number is 1 or 2 less than a * multiple of 20. So for example 38 and 39 return true, but 40 returns false. */

public boolean less20(int n) {


return n % 20 == 19 || n % 20 == 18;


}

/* Given three ints, a b c, return true if one of them is 10 or more less * than one of the others. */

public boolean lessBy10(int a, int b, int c) {




return Math.abs(a - b) >= 10 || Math.abs(a - c) >= 10 || Math.abs(b - c) >= 10;




}

/* The number 6 is a truly great number. Given two int values, a and b, * return true if either one is 6. Or if their sum or difference is 6. Note: * the function Math.abs(num) computes the absolute value of a number. */

public boolean love6(int a, int b) {




if(a == 6 || b == 6 || a + b == 6 || Math.abs(a - b) == 6)




return true;




return false;




}

/* Given two int values, return whichever value is larger. However if the two * values have the same remainder when divided by 5, then the return the * smaller value. However, in all cases, if the two values are the same, * return 0. */

public int maxMod5(int a, int b) {




if(a == b) return 0;




if(a % 5 == b % 5)


return a < b ? a : b;






return a > b ? a : b;




}

/* Return true if the given non-negative number is 1 or 2 more than a * multiple of 20. */

public boolean more20(int n) {


return n % 20 == 1 || n % 20 == 2;


}

/* Given a non-negative number "num", return true if num is within 2 of a * multiple of 10. */

public boolean nearTen(int num) {


return num % 10 <= 2 || num % 10 >= 8;


}

/* Return true if the given non-negative number is a multiple of 3 or 5, but * not both. */

public boolean old35(int n) {


return (n % 3 == 0) != (n % 5 == 0);




}

/* You have a red lottery ticket showing ints a, b, and c, each of which is * 0, 1, or 2. If they are all the value 2, the result is 10. Otherwise if * they are all the same, the result is 5. Otherwise so long as both b and c * are different from a, the result is 1. Otherwise the result is 0. */

public int redTicket(int a, int b, int c) {


if(a == 2 && b == 2 && c == 2)


return 10;




if(a == b && b == c)


return 5;




if(a != b && a != c)




return 1;




return 0;




}

/* Given two ints, each in the range 10..99, return true if there is a digit * that appears in both numbers, such as the 2 in 12 and 23. */

public boolean shareDigit(int a, int b) {




int al = a / 10;


int ar = a % 10;


int bl = b / 10;


int br = b % 10;




return al == bl || al == br || ar == bl || ar == br;




}

/* Given 2 ints, a and b, return their sum. However, sums in the * range 10..19 inclusive, are forbidden, so in that case just return 20. */

public int sortaSum(int a, int b) {




int sum = a + b;


if(10 <= sum && sum <= 19) return 20;




return sum;




}

/* We'll say a number is special if it is a multiple of 11 or if it is one * more than a multiple of 11. Return true if the given non-negative number * is special. */

public boolean specialEleven(int n) {




return (n % 11) == 0 || (n % 11) == 1;




}

/* The squirrels in Palo Alto spend most of the day playing. In particular, * they play if the temperature is between 60 and 90 (inclusive). Unless it * is summer, then the upper limit is 100 instead of 90. Given an int * temperature and a boolean isSummer, return true if the squirrels play and * false otherwise. */

public boolean squirrelPlay(int temp, boolean isSummer) {


if(isSummer && 60 <= temp && temp <= 100)


return true;




if(!isSummer && 60 <= temp && temp <= 90)


return true;




return false;




}

/* Given 2 non-negative ints, a and b, return their sum, so long as the sum * has the same number of digits as a. If the sum has more digits than a, * just return a without b. */

public int sumLimit(int a, int b) {


int sum = a + b;


int aLength = String.valueOf(a).length();


int sumLength = String.valueOf(sum).length();




if(sumLength == aLength)


return sum;




return a;




}

/* We are having a party with amounts of tea and candy. Return the int * outcome of the party encoded as 0=bad, 1=good, or 2=great. A party is good * (1) if both tea and candy are at least 5. However, if either tea or candy * is at least double the amount of the other one, the party is great (2). * However, in all cases, if either tea or candy is less than 5, the party is * always bad (0). */

public int teaParty(int tea, int candy) {


if(tea < 5 || candy < 5)


return 0;




if(tea >= 2 * candy || candy >= 2 * tea)


return 2;




return 1;




}

/* Given 2 ints, a and b, return their sum. However, "teen" values in the * range 13..19 inclusive, are extra lucky. So if either value is a teen, * just return 19. */

public int teenSum(int a, int b) {


if((13 <= a && a <= 19) || (13 <= b && b <= 19)) return 19;




return a + b;




}

/* Given three ints, a b c, return true if it is possible to add two of the * ints to get the third. */

public boolean twoAsOne(int a, int b, int c) {


return a + b == c || a + c == b || b + c == a;




}

/* Return the sum of two 6-sided dice rolls, each in the range 1..6. However, * if noDoubles is true, if the two dice show the same value, increment one * die to the next value, wrapping around to 1 if its value was 6. */

public int withoutDoubles(int die1, int die2, boolean noDoubles) {


if(noDoubles && die1 == die2) {


die1++;




if(die1 == 7)


die1 = 1;


}




return die1 + die2;




}