【攒人品】携程 3.29 笔试前三题
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s = scanner.nextLine(); char[] ss = s.toCharArray(); int count = 0; for (int i = 0; i < ss.length; i++) { if(ss[i] == '0' || ss[i] == '6' || ss[i] == '9'){ count ++; } else if(ss[i] == '8'){ count += 2; } } System.out.println(count); } }
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = scanner.nextInt(); List<Integer> list = new ArrayList<>(); int y = n; for (int i = 0; i < k; i ++) { list.add(y - k + i + 1); } if (list.size() < n){ for (int i = 0; i < n - k; i++) { if(2 * i + 1 <= list.size()){ list.add(2 * i + 1, i + 1); } else { list.add(i + 1); } } } for (int i = 0; i < n; i++) { System.out.print(list.get(i)+" "); } } }
import java.util.Scanner; public class Main3 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long n = scanner.nextLong(); long y = 0, min = n; long x_1 = 2, x = 2; long min_x = 1, min_y=1; while(x_1 <= 10000000000L){ if (x != 2){ y = n / (x_1 - 1); for (long i = y - 1; i <= y + 1; i++) { if(i != 2 && i > 0){ long abs = Math.abs(n-(x_1-1)*i); if(min > abs){ min = abs; min_x = x; min_y = i; } } } } x_1 = x_1 * (++x); } System.out.println(min_x+" "+min_y); } }
方法要是太笨的话,大家轻点喷,另求一道AC的第四题解答(感动)
#携程#