For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.
hasOne:
public boolean hasOne(int n) { while (n > 0) { if (n % 10 == 1) return true; n = n / 10; } return false; }
dividesSelf:
public boolean dividesSelf(int n) { int copyN = n; while (n > 0) if (n % 10 == 0) return false; else if (copyN % (n % 10) == 0) n /= 10; else return false; return true; }
copyEvens:
public int[] copyEvens(int[] nums, int count) { int[] result = new int[count]; int position = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] % 2 == 0) { result[position] = nums[i]; position++; } if (position == count) break; } return result; }
copyEndy:
public int[] copyEndy(int[] nums, int count) { int[] result = new int[count]; for (int i = 0, pos = 0; i < nums.length; i++) { if (nums[i] >= 0 && nums[i] <= 10 || nums[i] >= 90 && nums[i] <= 100) { result[pos] = nums[i]; pos++; } if (pos == count) break; } return result; }
matchUp:
public int matchUp(String[] a, String[] b) { int count = 0; for (int i = 0; i < a.length; i++) if (!a[i].equals("") && !b[i].equals("") && a[i].charAt(0) == b[i].charAt(0)) count++; return count; }
scoreUp:
public int scoreUp(String[] key, String[] answers) { int sum = 0; for (int i = 0; i < answers.length; i++) if (answers[i] == key[i]) sum += 4; else if (!answers[i].equals("?")) sum -= 1; return sum; }
wordsWithout:
public String[] wordsWithout(String[] words, String target) { int count = 0; for (int i = 0; i < words.length; i++) if (!words[i].equals(target)) count++; String[] result = new String[count]; for (int i = 0, pos = 0; i < words.length; i++) if (!words[i].equals(target)) { result[pos] = words[i]; pos++; } return result; }
For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.
hasOne:
hi, ithink row 2 must be
while (n > =1) {
Denis, both expressions are equivalent. If this isn’t clear to you, then maybe draw a number line and mark the segments for x >= 1 and x > 0.
OK. equivalent
@copyEndy
You didn’t use a separate method isEndy(int n) as is mentioned in the assignment.
Its not really an issue, you can just take the if condition and put it in the other method…
public int[] copyEndy(int[] nums, int count) {
int[] result = new int[count];
for (int i = 0, pos = 0; i = 0 && n = 90 && n <= 100)
return true;
return false;
}
not sure why the coding didn’t copy or if the comment is not showing properly…
public boolean isEndy(int n) {
if (n >= 0 && n = 90 && n <= 100)
return true;
return false;
}
@scoreUp
You are comparing two strings with the == sign instead of .equals(). Your solution happens to give correct answers but I don’t think it’s correct practice to compare strings with the == sign.
A bit deferent approach to hasOne
public boolean hasOne(int n) {
String str=String.valueOf(n);
for(int i=0; i<str.length(); i++)
if(str.charAt(i)=='1') return true;
return false;
}
My solution
public int[] copyEvens(int[] nums, int count) {
int i=0;
int j=0;
int[] arr=new int[count];
while(i<count){
if(nums[j]%2==0){
arr[i]=nums[j];
i++;
j++;
}else{
j++;
}
}
return arr;
}
My solution
public int[] copyEndy(int[] nums, int count) {
int[] arr=new int[count];
int j=0;
for(int i=0; j=0 && n=90 && n<=100);
}
A bit different
public String[] wordsWithout(String[] words, String target) {
ArrayList arr=new ArrayList();
for(int i=0; i<words.length; i++)
if(words[i]!=target) arr.add(words[i]);
String[] str=new String[arr.size()];
arr.toArray(str);
return str;
}
hasOne:
public boolean hasOne(int n) {
return String.valueOf(n).contains(“1”);
}
wordsWithout
public String[] wordsWithout(String[] words, String target) {
return java.util.Arrays
.stream(words)
.filter(x -> !x.equals(target))
.toArray(String[]::new);
}