目录
1.查找输入整数中二进制1的个数
2.完全数计算
1.查找输入整数中二进制1的个数
查找输入整数二进制中1的个数_牛客题霸_牛客网【牛客题霸】收集各企业高频校招笔面试题目,配有官方题解,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://www.nowcoder.com/practice/1b46eb4cf3fa49b9965ac3c2c1caf5ad?tpId=37&&tqId=21285&rp=1&ru=/activity/oj&qru=/ta/huawei/question-ranking
①题目及示例:
②方法解析:
这道题很像我们昨天刷过的一道题,它的目的是计算出二进制下1的个数,那么我们就可以利用按位与1来计算,将待计算数每次右移一位即可,结果是1,则count++;
但是这里还有值得注意的一点就是题目中强调了注意多组的输入输出,因此我们这里会用到scanner中的scanner.hasNext()这个方法,下面给大家看一看它的一些说明
这是查阅jdk1.8的结果。也就是说,在一组数据输出结束的时候,它并不会马上停止程序进程的运行,它会先让程序进行阻塞,以便输入下一组数据。
③代码如下:
import java.util.*; public class demo4 { public static void main(String[]args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); int count=0; while(n!=0){ if((n&1)==1){ count++; } n>>=1; } System.out.println(count); } } }
2.完全数计算
完全数计算_牛客题霸_牛客网【牛客题霸】收集各企业高频校招笔面试题目,配有官方题解,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84?tpId=37&&tqId=21279&rp=1&ru=/activity/oj&qru=/ta/huawei/question-ranking
①题目及示例:
②方法解析:
本题题意就不做过多讲解了,这个题很简单,主要就是要对约数和(除去本身)来进行判断。而这个题我们值得注意的是判断约数的时候范围截中选取就可以了,因为本来两者就是对应的。还有就是因为本身是不被选取的,所以我们可以把本身相对的约数1直接加在最后来进行判断。
③代码如下:
import java.util.*; public class Main { public static void main(String[]args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int count=0; for(int i=2;i<=n;i++){ if(isPerfectNum(i)){ count++; } }System.out.println(count); }//判断约数 public static boolean isPerfectNum(int i){ int sum=0; for(int j=2;j



