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);
}
}
VIPKID:笔试题(数组中和为0的一对数的数量,十进制转二进制中1的个数)的更多相关文章
- 剑指offer编程题Java实现——面试题10二进制中1的个数
题目: 请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数.例如,把9表示成二进制是1001,有2位是1,该函数输出2解法:把整数减一和原来的数做与运算,会把该整数二进制表示中的最低位的1变 ...
- 剑指Offer面试题:9.二进制中1的个数
一.题目:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. 二.可能引起死循环的解法 一个 ...
- 基于visual Studio2013解决面试题之0410计算二进制中1的个数
题目
- 剑指Offer面试题:8.二进制中1的个数
一 题目:二进制中1的个数 题目:请实现一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. 二 可能引起死循环的解法 // 计算整数的二 ...
- P78、面试题10:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制1001,有2位是1.因此如果输入9,该函数输出2. 相关题目: 1)用一条语句判断一个整数是不是2的整数次方.一 ...
- 剑指offer-面试题10:二进制中1的个数
题目:请实现一个函数,输入一个函数,输出该数二进制表示中1的个数.例如把9 表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. 这道题最典型的方法就是用移位统计,就比如统计9的二进制1 ...
- (剑指Offer)面试题10:二进制中1的个数
题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: 很明显,这道题考察的是位运算. 1.依次将整数右移,判断整数最后一位是否为1(&1): 问题:如果该整数为负数 ...
- 《剑指offer》面试题10 二进制中1的个数 Java版
书中方法一:对于每一位,用1求与,如果为1表明该位为1.一共要进行32次,int4字节32位. public int check(int a){ int result = 0; int judge = ...
- 《剑指offer》面试题15. 二进制中1的个数
问题描述 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输入:00000 ...
随机推荐
- Mysql相关问题-----1045 Access denied for user 'root'@'localhost' (using password: YES)报错
MySQL 连接错误,使用Navicat连接MySQL出现错误:1045 Access denied for user 'root'@'localhost' (using password: YES) ...
- asp.net core系列 63 领域模型架构 eShopOnWeb项目分析 上
一.概述 本篇继续探讨web应用架构,讲基于DDD风格下最初的领域模型架构,不同于DDD风格下CQRS架构,二者架构主要区别是领域层的变化. 架构的演变是从领域模型到CQRS, 一开始DDD是用领域 ...
- 修改linux内核加载顺序
修改内核启动顺序:1.查看当前系统所有的内核# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/gr ...
- Java匹马行天下之学编程的起点——走进编程的殿堂
学编程的起点——走进编程的殿堂 前言: 知其然,知其所以然,努力固然重要,但是思维的提升会让你事半功倍,我会用我花费时间换来的“思维”带更多的朋友入门,让你们明明白白学编程,学编程,不迷茫. 转变思维 ...
- 排序算法Java代码实现(二)—— 冒泡排序
本篇内容: 冒泡排序 冒泡排序 算法思想: 冒泡排序的原理是:从左到右,相邻元素进行比较. 每次比较一轮,就会找到序列中最大的一个或最小的一个.这个数就会从序列的最右边冒出来. 代码实现: /** * ...
- 执行http脚本
Invoke-Expression (Invoke-WebRequest http://10.16.2.5:81/Configcmd.ps1).content
- JavaScript HTML DOM 节点
要向HTML DOM添加新元素,必须首先创建元素(元素节点),然后将其附加到现有元素. <!DOCTYPE html> <html> <meta charset=&quo ...
- vue中嵌套的iframe中控制路由的跳转及传参
在iframe引入的页面中,通过事件触发的方式进行传递参数,其中data是一个标识符的作用,在main.js中通过data进行判断,params是要传递的参数 //iframe向vue传递跳转路由的参 ...
- SPC软控件提供商NWA的产品在各行业的应用(石油天然气行业)
Northwest Analytical (NWA)是全球领先的“工业4.0”制造分析SPC软件控件提供商.产品(包含: NWA Quality Analyst , NWA Focus EMI 和 N ...
- OC-RunLoop运行循环
RunLoop--运行循环 作用:死循环,保证程序不退出:监听事件 (所有事件都是有它监听的):等待用户的交互: 特性: ios中所有的事件监听全部由运行循环负责: 主线程的RunLoop在应用启动的 ...