精华内容
下载资源
问答
  • 怎么判断JS中一个数字是否为整数? 面试的时候遇到的问题,然后小疯回去查就几种方法,姑且一看,请多指正。 方法一: var ss =$("#ss").val(); var sss = parseInt(ss); //此时已经将所添加的数据转换...

    怎么判断JS中一个数字是否为整数?

    面试的时候遇到的问题,然后小疯回去查就几种方法,姑且一看,请多指正。

    方法一:

    var ss =$("#ss").val();

    var sss = parseInt(ss); //此时已经将所添加的数据转换成整型,然后可以比较sss和ss。

    BUT 缺点是如果输入的数据是11.000,那么ss=11.000,sss=11。有些许瑕疵。

    方法二:

    采用了正则表达式,不是太理解,希望大神可以指导。

     function dataValidation(val) {
           var type = "^[0-9]*[1-9][0-9]*$";
           var re = new RegExp(type);
        if (val.match(re) == null) {
           alert("这可不是个整数!");
          return false;
       } else {
          return true;
      }
     }

    方法三:

    function isInteger(obj){

        return typeof obj === 'number' && obj%1 ===0

    }

    这个方法会判断object是否是数字,然后求余。

     

    方法四:

    function isInteger(obj){

        return Math.floor(obj) === obj

    }

    使用Math.floor(取整数部分)、Math.round(四舍五入)、Math.ceil(取整数部分+1)判断,整数取整后还是自己。

     

    方法五:

    function isInteger(obj){

        return parseInt(obj,10) ===obj

    }

    运用JavaScript中parseInt函数,但是有一个缺点:isInteger(1000000000000000000000) //false

    *parseInt() 函数可解析一个字符串,并返回一个整数。

    parseInt("10");			//返回 10
    parseInt("19",10);		//返回 19 (10+9)
    parseInt("11",2);		//返回 3 (2+1)
    parseInt("17",8);		//返回 15 (8+7)
    parseInt("1f",16);		//返回 31 (16+15)
    parseInt("010");		//未定:返回 10 或 8

     

    后面两种方面不是太会运用!!

    方法六:

    function isInteger(obj){

     return (obj | 0) ===obj

    }

    通过位运算判断,但是只能处理32位以内,而且小疯对于位运算不太理解

    方法七:

    ES6提供了Number.isInteger

    Number.isInteger(3) // true
    Number.isInteger(3.1) // false

    这个没有试验过!

    转载于:https://my.oschina.net/yexiaofeng/blog/1818137

    展开全文
  • 原标题:【BAT面试现场】如何判断一个数是否在40亿个整数中? 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? 【请教大神】 小史...

    原标题:【BAT面试现场】如何判断一个数是否在40亿个整数中?

     

    题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做?

    【请教大神】

    小史回到学校,把面试的情况和计算机学院的吕老师说了一下。

    小史忙拉着吕老师问,为什么我说分8次加载数据,面试官会说太慢了呢?

    吕老师:哈哈,从磁盘加载数据是磁盘io操作,是非常慢的,你每次都要加载这么大的数据,还要8次,我估计你找一个数的时间可以达到分钟甚至小时级了。

    小史:那如果是你,你会怎么办呢?

    吕老师:其实面试官已经提示得比较明显了,他说给你一批机器,就是暗示你可以用分布式算法。你把数据分散在8台机器上,然后来一个新的数据,8台机器一起找,最后再汇总结果就行了。

    小史:这样的话能快多少?

    吕老师:这样应该能达到秒级。小史,你可以自己分析分析。

    小史:我想想……哦,这样做的话,因为每台机器都可以一次性把数据读入内存,在比较的时候不用来回加载数据了,所以可以节省加载数据的开销!这真是个好办法。

    【更好方案】

    吕老师:其实这并不是最好方法,我这还有一种毫秒级的方法,想不想知道啊?

    小史:当然想啊,快教教我。

    小史:哦,对哦,这样我就申请40亿个位就好了,新的数转换成一个位,然后判断一下这个位是0还是1就行了。

    吕老师:小史啊,考虑问题要考虑清楚啊,如果是40亿个位,那么这40亿个位哪些是0,哪些是1呢?来了一个新的数,怎么判断是否在40亿个位之中?

    小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。

    吕老师:其实你可以想想,32位int的范围,总共就是2的32次方,大概42亿多点。所以你可以申请2的32次方个位。

    小史:意思是我把整个整数范围都覆盖了,哦,对哦。这样一来,就可以做了,1代表第一个位,2代表第二个位,2的32次方代表最后一个位。40亿个数中,存在的数就在相应的位置1,其他位就是0。

    吕老师:没错,那来了一个新的数呢?

    小史:新的数就去找相应的位,比如来了一个1234,就找一下第1234位,如果是1就存在,是0就不存在啦。

    吕老师:没错,那么这样的话,需要多大内存呢?

    小史:我想想啊,2的32次方个位,相当于2的29次方个字节,哇,才500MB,真是节省了不少内存呢。

    小史:这么厉害的算法,你是怎么想到的?

    吕老师:其实这是一种非常有名的大数据算法,叫位图法,英文名叫bitmap。顾名思义,就是用位来表示状态,从而节省空间。明天正好我有一节课,就讲位图法,你可以来听一听。

    【吕老师的课】

    第二天,吕老师开始上课,他一开始就抛出了小史遇到的面试题。

    吕老师:同学们,这道题是BAT公司的一道面试题,大家有什么思路吗?

    话音刚落,蛋哥就站起来回答。蛋哥是吕老师最得意的门生,以思维活跃著称。

    蛋哥:我觉得可以这样。首先,32位int的范围是42亿,40亿整数中肯定有一些是连续的,我们可以先对数据进行一个外部排序,然后用一个初始的数和一个长度构成一个数据结构,来表示一段连续的数,举个例子。

    如果数据是1 2 3 4 6 7……这种的,那么可以用(1,4)和(6,2)来表示,这样一来,连续的数都变成了2个数表示。

    来了一个新数之后,就用二分法进行查找了。

    这样一来,最差情况就是2亿多的断点,也就是2亿多的结构体,每个结构体8个字节,大概16亿字节,1.6GB,在内存中可以放下。

    吕老师:嗯,非常好,不仅给出了方案,还能主动分析空间和可行性。

    小史听完后深感佩服,问题的解决方法绝对不止一种,只要肯动脑筋,即使没有学过bitmap算法,也能有别的方法来解决问题。

    【课后】

    下课后,小史又找到吕老师。

    吕老师:但是你的理解能力还是很强的,很多东西一听就懂,这可不是谁都能做到的。

    转载于:https://www.cnblogs.com/kaleidoscope/p/9910534.html

    展开全文
  • 如何用程序判断一个整数是否质数: // 判断该数字是否质数 // 怎么判断num是不是质数 // 怎么判断8是不是质数? // 思路:8除以2看看能不能整除、8除以3看看能不能整除、8除以4看看能不能整除 // 一直...

    问题描述:

    如何用程序判断一个正整数是否为质数:

    // 判断该数字是否为质数
    		// 怎么判断num是不是质数
    		// 怎么判断8是不是质数?
    		// 思路:8除以2看看能不能整除、8除以3看看能不能整除、8除以4看看能不能整除
    		// 一直除下去,直到发现有能够整除的,表示该数一定不是质数。
    		/*
    			假设输入的是7:
    				7 / 1 不用判断
    				7 / 2	需要判断
    				7 / 3	需要判断
    				7 / 4	需要判断(假设这个判断,发现可以整除,就没必要往下判断了。)
    				7 / 5	需要判断
    				7 / 6	需要判断
    				7 / 7 不用判断
    		*/
    

    ``

    解决方案:

    可以考虑在外边准备一个布尔类型的标记。

    public static void main(String[] args){
    
    		java.util.Scanner s = new java.util.Scanner(System.in);
    
    
    		int num = s.nextInt();
    		boolean zs = true;
    		for(int i = 2; i < num; i++){
    			
    			if(num % i == 0){
    				zs = false;
    			}
    		
    		}
    		if(zs == true)
    			System.out.println("shizhishu");
    		else
    			System.out.println("bushizhishu");
    	}
    
    展开全文
  • 一个数在不在就是两个状态,在或者不在,就可以用1个位来代表。 每个整数是32位的,那么所有的整数也就2^32个,大概42亿个数左右。 可以申请2^32的位,把每一个整数都覆盖了,40亿个数的位分别1,剩下的位0。 新...

    题目:我有 40 亿个整数,再给一个新的整数,我需要判断新的整数是否在 40 亿个整数中,你会怎么做(每个整数是32位的)?

    一个数在不在就是两个状态,在或者不在,就可以用1个位来代表。
    每个整数是32位的,那么所有的整数也就2^32个,大概42亿个数左右。
    可以申请2^32的位,把每一个整数都覆盖了,40亿个数的位分别为1,剩下的位为0。
    新的整数,就可以跟进它的大小来判断相应的位,比如1245,就去看1245位是1还是0来判断是否在这40亿个整数中。

    232个位,就是229个字节,也就是500M左右。

    位图法(bitmap)

    链接:
    漫画:如何判断一个数是否在 40 亿个整数中

    展开全文
  • 题目源自于Leetcode。Determine whether an integer is a palindrome. Do this without extra space. 思路: 1、不可以借助辅助空间。即要求空间复杂度O(1)。...3、如果想要逆转整数,一定要注意防止溢出的问
  • 如果一个整数是2的整数次幂,那么当它转化成二进制时,只有最高位是1,其他位都是0!接下来如果把这些2的整数次幂各自减1,再转化成二进制。 这时候如果用原数值(2的整数次幂)和它减1的结果进行按位与运算,也...
  • 判断一个数是否素数的题上,花费了我大量的时间,所以我不得不拿来说一说 一、素数是什么? 素数就是在所有比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做素数(质数) 二、思考步骤 1.满足...
  • 题目描述:判断一个整数是否是回文。不能使用辅助空间。一些提示:负整数可以是回文吗?(例如 -1)如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。你也可以考虑将数字颠倒。但是如果你已经解决了...
  • 约定费马小定理积模分解公式快速计算乘方的算法蒙格马利快速幂模算法怎么判断一个数是否素数 笨蛋的作法下面是小学生的做法下面是中学生的做法下面是专家的做法 拉宾米勒测试 1.约定 x%yx取模y...
  • 时间限制:1秒 空间限制:32768K 热度指数:208968题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。这道题主要考查我们对于doble和int类型的熟练度,还有当用例负数的...
  • 在不使用额外的内存空间的条件下判断一个整数是否是回文 提示: 负整数可以是回文吗?(比如-1) 如果你在考虑将数字转化字符串的话,请注意一下不能使用额外空间的限制 你可以将整数翻转。但是,如果你做过...
  • 在leetcode上刷第七题时,提到32位的有符号二进制表示的整数范围:-2^31~2^31-1,那这是怎么来的呢? 首先对于计算机内存存储的二进制,具体表示什么其实是交给人来决定的,如: 1000 0001 有符号表示的...
  • 这次的面试题目是:判断一个数是否是happy number(每一位的平方和最终1) 知道题目首先要理解题目。所谓happy number就是一个整数每个位数上的数字的平方相加,一直循环,如果最终能等于1,则就是happy number。 ...
  • 在不使用额外的内存空间的条件下判断一个整数是否是回文。 提示: 负整数可以是回文吗?(比如-1) 如果你在考虑将数字转化字符串的话,请注意一下不能使用额外空间的限制你可以将整数翻转。但是,如果你做过题目...
  • *给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和目标值的那 两个 整数,并返回他们的数组下标(js实现)。 1.方法1 利用哈希表将每一个整数与target目标的差值和该证书的索引值,以键值对(差值...
  • 这里我们怎么判断sf小数点部分是否零,可以直接用原减去将sf强制转换后的整数是否零来判断。 if((sf - (int)sf) == 0),则说明sf的小树部分零,反之则不零。 转载于:...
  • 在不使用额外的内存空间的条件下判断一个整数是否是回文 提示: 负整数可以是回文吗?(比如-1) 如果你在考虑将数字转化字符串的话,请注意一下不能使用额外空间的限制 你可以将整数翻转。但是,如果你做过...
  • 在不使用额外的内存空间的条件下判断一个整数是否是回文 提示: 负整数可以是回文吗?(比如-1) 如果你在考虑将数字转化字符串的话,请注意一下不能使用额外空间的限制 你可以将整数翻转。但是,如果你做过...
  • 想把一个整数转换成字符串,字符串长度2,怎么弄?比如1=>"01"11=>"11" 有几个思路1、判断数字是几位 然后加上0 2、除以10,然后转换成字符串,然后把小数点删掉 var b = 2 b = (b > 9 ? ...
  • 0*任何数为0,1*任何数为1. 考虑到如果a大于b的话int a除以int b结果为1反之为0.但是我初学想了好久还是不明白不用判断怎么去构筑这程序。“输入两个整数,并显示大的数和小的数的值”。求求各位大佬指点下萌新!...
  • 今天看到一道题目,说是什么自己前端不值钱?然后还不怎么相信,就试着做了做题目,然后。... //判断数组里是否包含一个某一项值 function contains(arr,item){ var flag=false; for(var i=0;i<...
  • System.out.println("请输入一个整数:"); int x =System.in.read(arr); String str = new String(arr,0,x); System.out.println(str); //提取输入的内容(字符串类型) int y = Integer....
  • 好几年前,有人问我,怎么判断整数相加是否会溢出,当时没放在心上,今天心血来潮,思考一个方法,如下 以无符号8位整数为例,只要将两转为二进制,从高位往低位比较,找第一个相对位置上的是否相同 如果...
  • 题目:输入一个整数,判断该正数的... 分析1:我们可以这样考虑,从右向左注意判断每一个位上是否1,怎么判断?我们让这个数整数1(01)做与运算,由于1除最后一位外其余部分全部都是0,因而如果整数的最后一...
  • 1、验证一个数是否水仙花数  ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153);  ②了解...
  • 一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以空 输出描述: 如果是合法的数值表达则...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 196
精华内容 78
关键字:

怎么判断一个数为整数