1284 2 3 5 7的倍数 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。...例如N = 10,只有1不是2 3 5 7的倍数。 Input 输入1个数N(1 <= N <= 10^18)。 Output 输出不是2 3 5 7的倍数的数共有多少。...problemId=1284 分析: 此题是典型的容斥原理题,一开始理解错误,写成了丑数题,反正一直超时,后来才发现; 要求不是2,3,5,7的倍数的个数,可以先求出2,3,5,7的个数,之后通过n减去...2,3,5,7的倍数的个数可求得不是2,3,5,7的倍数的个数; 而要知道2,3,5,7的倍数的个数,只需要分别知道2的倍数个数,3的倍数个数,5的倍数个数,7的倍数的个数,之后通过容斥原理(先不考虑重叠的情况...最后即可得到不是2 3 5 7的倍数的个数。
window.onload = function() { //这么写是为了实现js代码与html...代码的分离,当我修改js时,不能影响html代码。 ...[1-9]|[1-2]\d|3[0-1])$/; return datePattern.test(d); }
利用JSON.stringify的报错信息来做 var obj1 = {a:"1"}; obj1.b = {}; obj1.b.a = obj1.b; var obj2 = {a: {c: "1"}};...obj2.a.b = obj2; var obj3 = {a: 1, b: 2, c: {d: 4}, d: {}, e: {}} var obj1 = {a:"1"}; obj1.b = {};...}; obj5.b = {}; obj5.b.a = obj5.b; obj5.b.b = obj5.b; var b = {} var obj6 = { a1: b, a2: { a3:...(isLoop(obj4)); console.log(isLoop(obj5)); console.log(isLoop(obj6)); 这里我看了JONS-js的源码,利用weak-map来做 var...typeof obj[key] === 'object') { if(cwm.has(obj[key])) { // 如果同层级的互相引用了
var UserAgent = { useragent:window.navigator.userAgent.toLowerCase(), a...
假设你想检查你的值是否等于空对象,可以使用对象文字语法创建: const emptyObject = {} 如何判断它是一个空对象? 使用Object.entries()方法。...它返回一个包含对象的可枚举属性的数组。 使用方式: Object.entries(objectToCheck) 如果它返回一个空数组,这意味着该对象没有任何可枚举的属性,这反过来意味着它是空的。...Object.entries(objectToCheck).length === 0 你还应该确保对象实际上是一个对象,通过检查它的构造函数是对象对象: objectToCheck.constructor...=== Object Lodash是一个流行的库,它提供了isEmpty()函数判断是否是空对象,简化了操作: _.isEmpty(objectToCheck) 类似的使用Object.entries...方法,我们还可以使用Object.keys()和Object.values()来判断,判断方法很相似。
方法一 Array.isArray && arr.length 通过Array.isArray来判断是否为数组,再通过length属性。...如果作为参数传递的对象是数组,则此方法返回true。它还检查数组是否未定义或为空。 可以使用array.length属性检查数组是否为空。此属性返回数组中的元素数。...例: Array.isArray(emptyArray) && emptyArray.length 方法二 方法二其实和之前的方法类似,理论都是一样的。只是判断数组的方法不一样而已。...arr && typeof arr === "object" && arr.constructor === Array && arr.length 注:typeof判断数组和null的时候返回的是”object
前几天有个同学问说他有个 cms 没有 if 判断标签,php 还不会写,我就给他写了个能用的 jq,原理就是通过判断地址栏的链接和代码里导航部分的链接一致的话就高亮,分享出来给大家参考。...js_Current.zip js_Current js"> js"> <...部分 $(document).ready(function(){ if(String(window.location).indexOf("php")判断是否是首页.文件后缀 $(".nav
// 判断对象的方法 let obj6 = { a: 1, b: 2 }; // 1. typeof console.log(typeof obj6 === "object"); // 2. instanceof...console.log(obj6 instanceof Object === true); // 3. constructor console.log(obj6.constructor === Object...__proto__===Object.prototype); 以上方法中 1,2 都是不准确的饿,推荐方法 4.
在做管理系统是经常会遇到修改密码的情况,这时,我们需要检测用户输入的密码来判断密码的复杂程度,即密码强度,如下图 ? 判断密码强度的原理其实就是判断用户输入密码的位数,包含输入字符的种类。...一般情况下,用户输入的字符类型有字符、特殊字符和数字,一般情况下,密码的长度不应该小于四位。...下面来看一下代码 JS判断密码强度 //判断输入密码的类型 function
undefined 和 null 用 == 比较是相等的,我们可以有两种方法来进行区分。...区别方法一: 因为他们的类型时不同的,=== 会先比较类型,再比较值,所有可以直接用 === 来进行区分。 ?...null 的类型是 object,undefined 的类型是 undefined。 ? 区别方法二: 以区别 null 为例,!key && typeof(key)!...== 的讲解: == 是先把左右两边转化为相同的类型,再进行区分。 true 转化为整数后是 1,false 转化为整数后是 0。 ?
循环输出1-100,其中3的倍数输出A,5的倍数输出B,15输出C。 4、 循环输出1-100,其中3的倍数输出A,5的倍数输出B,15输出C。...for($i=1; $i<=100; $i++) { if($i%15==0) //先写%15,,因为可以%15的值一定可以%3和%5 echo 'C'; elseif($i%3==0)
Object.prototype.toString.call([]) // '[object Array]' 3. [].constructor ===Array // true 4. [] instanceof...Object.getPrototypeOf([]) === Array.prototype // true 以上方法中,1和 2 绝对靠谱,其他方法会受原型链被修改的影响,使用时注意。
从杜蕾斯的活动页面上拔下来的~ var isMobile = { Android: function() { return navigator.userAgent.match(/Android
正则表达式能匹配3的任意倍数?(注意是任意倍数) ,我曾经也很震惊,但确实可以。...我5年多前练习正则表达式,在Regex Golf这个正则表达式测试网站上发现了这个题,当时完全没有任何头绪,于是我在知乎提问正则表达式如何匹配 3 的倍数 ,但是得到了好多知乎大佬的关注,也上了当天的热榜...,再次强调是任意,它确实能匹配任意长度的3的倍数(严谨一点应该是正整数倍,这里不再细究)。...如果我们要生成一个匹配N的倍数的DFA,我们的思路是这样的,如果一个数X是N的倍数,那么一定是X % N == 0,这也是我们用来判断X是不是N的倍数方法,我们是把X看成是一个数字一个整体。...DFA推导出正则表达式 对于上文中匹配3的倍数的DFA,因为状态还算比较少,我们可以人肉推导出来。从上图我们可以看出ABC三个状态是相互依存的关系,我们可以把这种关系列成三个方程式。
问题 1 3 或 5 的倍数 如果我们列出所有小于 10 且是 3 或 5 的倍数的自然数,我们会得到 3、5、6 和 9。这些倍数之和是 23。...求 1000 以下所有 3 或 5 的倍数之和。...思路分析 暴力求解 常规思路,找到 1000 以内所有 3 或 5 的倍数,分别求和解决 优化思路 由于暴力解法的算法执行效率很低,需要重复遍历 1000 次,自然效率低下。...我们只需要枚举 3 的倍数之和、5 的倍数之和,最后减去它们的最小公倍数之和,便可节省不少时间 1000 以内 k 的倍数和为...i * 3; //求出3的倍数的和 } for (int i = 0; i <= (1000 - 1) / 5; i++) { sum5 +
因此判断逻辑如下: function isValidDate(d) { return d instanceof Date && !isNaN(d); } 实际案例: if(!
在浏览器当中 可以通过 navigator.userAgent获取浏览器信息(类型及系统) //判断是否用微信打开 function isWeixinFun() { var u = navigator.userAgent...u.indexOf("MicroMessenger")>-1) { return true; } else { return false; } } //判断使用的手机是
判断数据类型 隐式转换 0,’’,NaN,false,null,undefined,会转化为false if (undefined == true) { console.log('true')...console.log('false'); } //结果输出false var str = 'abc' var num = 1 var bool = true var arr = [1, 2, 3]...A对象的原型链上有没有B的原型。...// true,true console.log(obj1 instanceof Object); // true constructor 可以判断数组和对象...; console.log(Array.prototype.hasOwnProperty("toString"));//true console.log(arr.toString());//1,2,3
^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\...
if(typeof yourfunctionname === 'function'){ //存在且是function } else{ //不存在或...
领取专属 10元无门槛券
手把手带您无忧上云