300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > VIPKID:笔试题(数组中和为0的一对数的数量 十进制转二进制中1的个数)

VIPKID:笔试题(数组中和为0的一对数的数量 十进制转二进制中1的个数)

时间:2021-03-05 08:00:33

相关推荐

VIPKID:笔试题(数组中和为0的一对数的数量 十进制转二进制中1的个数)

1.求数组中的和为0的一对数的数量

注意,需要用到set

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc=new Scanner(System.in);String[] s = sc.nextLine().split(",");int len = s.length;HashSet<Integer> set = new HashSet<>();for (int i = 0; i < len; i++) {set.add(Integer.valueOf(s[i].trim()));}int[] newarray = new int[set.size()];int index=0;for (Integer i:set) {newarray[index++]= i;}int sum = 0;for (int i = 0; i < newarray.length; i++) {for (int j = i+1; j < newarray.length; j++) {if(newarray[i]+newarray[j]==0){sum++;}}}System.out.println(sum);}}

2.十进制转二进制中1的个数

方法1,借用java已经实现的方法

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc=new Scanner(System.in);int m = sc.nextInt();int num = 0;String str = Integer.toBinaryString(m);for (int i = 0; i < str.length(); i++) {if(str.charAt(i)=='1'){num++;}}System.out.println(num);}}

方法2,自己实现,注意,2的N次方的数需要加1

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc=new Scanner(System.in);int m = sc.nextInt();int num = 0;while(m!=0){if(m==2){num++;break;}if(m%2!=0){num++;}m/=2;}System.out.println(num);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。