LeetCode题解神奇的九位数

能不能找出一个九位数,这个数包含了1-9这九个数字,并且这九个数的前n位能被n整除,若这个数为abcdefghi,则ab可以被2整除,abc可以被3整除... abcdefghi可以被9整除。

请尽量优化你的复杂度,包括但不限于剪枝

题解:``` .js
/**
*能被2整除的数,个位上的数能被2整除(偶数都能被2整除),那么这个数能被2整除

能被3整除的数,各个数位上的数字和能被3整除,那么这个数能被3整除

能被4整除的数,个位和十位所组成的两位数能被4整除,那么这个数能被4整除

能被5整除的数,个位上为0或5的数都能被5整除,那么这个数能被5整除

能被6整除的数,各数位上的数字和能被3整除的偶数,如果一个数既能被2整除又能被3整除,那么这个数能被6整除

能被7整除的数,若一个整数的个位数字截去,再从余下的数中,减去个位数的2倍,如果差是7的倍数,则原数能被7整除。如果差太大或心算不易看出是否7的倍数,就需要继续上述「截尾、倍大、相减、验差」的过程,直到能清楚判断为止。例如,判断133是否7的倍数的过程如下:13-3×2=7,所以133是7的倍数;又例如判断6139是否7的倍数的过程如下:613-9×2=595 , 59-5×2=49,所以6139是7的倍数,余类推。

能被8整除的数,一个整数的末3位若能被8整除,则该数一定能被8整除。

能被9整除的数,各个数位上的数字和能被9整除,那么这个数能被9整除
*
*/
function find9Number() {
for (var a = 1; a <= 9; a++) { //1
for (var b = 1; b <= 9; b++) { // 2
if (a == b) continue;
if (b % 2 != 0) continue;

for (var c = 1; c <= 9; c++) { //3
if (c == b || c == a) {
continue;
}
if ((a + b + c) % 3 != 0) {
continue;
}
for (var d = 1; d <= 9; d++) { // 4
if (d == a || d == b || d == c) {
continue;
}

if ((c * 10 + d) % 4 != 0) continue;

for (var e = 1; e <= 9; e++) { // 5
if (e == a || e == b || e == c || e == d) {
continue;
}
if (e != 5) continue;

for (var f = 1; f <= 9; f++) { //6
if (f == a || f == b || f == c || f == d || f == e) {
continue;
}
if ((a + b + c + d + e + f) % 3 != 0 || f % 2 != 0) {
continue;
}
for (var g = 1; g <= 9; g++) { // 7
if (g == a || g == b || g == c || g == d || g == e || g == f) {
continue;
}
var str = '' + a + b + c + d + e + f;
if ((Number(str) - g * 2) % 7 != 0) continue;

for (var h = 1; h <= 9; h++) { // 8
if (h == a || h == b || h == c || h == d || h == e || h == f || h == g) continue;
var str = '' + f + g + h;
if (Number(str) % 8 != 0) continue;
for (var i = 1; i <= 9; i++) { // 9
if ((a + b + c + d + e + f + g + h + i) % 9 != 0) continue;

console.log(a, b, c, d, e, f, g, h, i);
return Number("" + a + b + c + d + e + f + g + h + i);
}
}
}
}
}
}
}
}
}
}
```

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可

LeetCode题解圆上任取三点构成锐角三角形的概率

来自字节跳动的一道几何题题解:1/4

LeetCode题解深度优先遍历和回溯的关系?

深度优先遍历的范围更大还是回溯的范围更大?为什么?题解:我的理解是:dfs是回溯思想的一种体现- 回溯:是在整个搜索空间中搜索出可行解,在搜索过程中不断剪枝回退,这是回溯的思想,这个搜索空间并没有限制于特定的数据结构。- dfs:dfs是指特定的数据结构中如图,树(特殊的图)中搜索答案,范围限制在了特定的数据结构。个人拙见。