程序算法
天码行空
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
18. 一球从100米高度自由落下, 每次落地后反跳回原高度的一半; 在落下, 求它在第10次落地时, 共经过多少米? 第10次反弹多高?
程序书算法精题–JS版一球从100米高度自由落下, 每次落地后反跳回原高度的一半; 在落下, 求它在第10次落地时, 共经过多少米? 第10次反弹多高?分析第一次 – 落地:100, 反弹:100 × 0.5^1第二次 – 100 × 0.5^1, 100 × 0.5^2,…,第十次 – 100 × 0.5^9, 100 × 0.5^10源码// 经过的距离let s = 100;// 小球高度let h = 0;for (let i = 1; i <=原创 2020-08-27 09:15:37 · 1051 阅读 · 0 评论 -
17. 一个数如果恰好等于它的因子之和, 这个数就称为“完数“. 例如 6 = 1 + 2 + 3. 编程找出1000以内的所有完数
程序书算法精题–JS版一个数如果恰好等于它的因子之和, 这个数就称为"完数". 例如 6 = 1 + 2 + 3. 编程找出1000以内的所有完数源码function findNum() { for (let i = 1; i < 1000; i++) { let sum = 0; for (let j = 1; j < i; j++) { if (i % j == 0) { sum += j; } } i原创 2020-08-27 09:08:24 · 714 阅读 · 0 评论 -
16. 求 s = a + aa + aaa + aaaa + aa...a 的值, 其中a是一个数字. 例如: 2 + 22 + 222 + 2222 + 22222( 此时共有5个数相加),...
程序书算法精题–JS版求 s = a + aa + aaa + aaaa + aa…a 的值, 其中a是一个数字. 例如: 2 + 22 + 222 + 2222 + 22222(此时共有5个数相加), 几个数相加由键盘控制.源码function add(a, count) { if (count < 0) { return } let s = 0; let t = 0; for (let i = 0; i < count; i++) { t +原创 2020-08-27 09:06:04 · 447 阅读 · 0 评论 -
14. 输入两个正整数m和n, 求其最大公约数和最小公倍数
程序书算法精题–JS版输入两个正整数m和n, 求其最大公约数和最小公倍数分析两个数的最大公约数 不会超过两个数的 最小值,两个数的最小公倍数 为两数相乘除以 最大公约数。源码function num(m, n) { let t = m < n ? m : n; for (let i = t; i >= 1; i--) { if (m % i == 0 && n % i ==0) { let j = m * n / i;原创 2020-08-27 09:02:12 · 1062 阅读 · 0 评论 -
13. 利用 条件运算符 的嵌套来完成此题: 学习成绩>=90分的同学A表示, 60-89分之间的用B表示, 60分以下的用C表示
程序书算法精题–JS版利用 条件运算符 的嵌套来完成此题: 学习成绩>=90分的同学A表示, 60-89分之间的用B表示, 60分以下的用C表示.源码function PrintSocre(score) { if (score < 0 && score > 100) { console.log(分数不正常); } else { if (score < 60) { console.log('C'); } else原创 2020-08-27 08:59:42 · 1665 阅读 · 0 评论 -
12. 打印出所有的“水仙花数“, 所谓“水仙花数“ 是指一个三位数, 其各位数字立方和等于该数本身. 例如: 153 是一个“水仙花数“, 因为153 = 1^3 + 5^3 + 3^3
程序书算法精题–JS版打印出所有的"水仙花数", 所谓"水仙花数" 是指一个三位数, 其各位数字立方和等于该数本身.例如: 153 是一个"水仙花数", 因为153 = 1^3 + 5^3 + 3^3分析打印三位数的所有"水仙花数’^3利用for循环控制100 - 999 个数, 每个数分解出个位, 十位, 百位将三个数的立方相加与原数字进行比较源码for (let i = 100; i <= 999; i++) { // 分割出个位 let a = Math.原创 2020-08-26 14:32:55 · 612 阅读 · 0 评论 -
11. 判断101~200之间有多少个素数, 并输出所有素数
程序书算法精题–JS版判断101~200之间有多少个素数, 并输出所有素数分析什么是素数: 除了1和它本身不会后其他因数源码let start = 101;let end = 200for (let i = start; i <= end; i++) { for (let j = 2; j < i; j++) { // 只要除到一个数让 i 能被整除就跳出该循环 if (i % j == 0) { break; } else {原创 2020-08-26 14:30:02 · 863 阅读 · 0 评论 -
10. 古典问题: 有一对兔子, 从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死, 问每个月的兔子总数为多少?
程序书算法精题–JS版古典问题: 有一对兔子, 从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死, 问每个月的兔子总数为多少?分析列出1到11个月情况: 1 1 2 3 5 8 13 21 34 55 89 144;由1可得, 为斐波那契数列;从第三个数开始, 往后每个数都是前2个数之和.源码let k;let yi = 1;let er = 1;let san;function fibonacci(k) { if (原创 2020-08-26 14:26:41 · 604 阅读 · 0 评论 -
9. 显示国际象棋棋盘
程序书算法精题–JS版国际象棋棋盘源码<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>国际象棋棋盘</title> <style>原创 2020-08-26 14:21:56 · 438 阅读 · 0 评论 -
8. 9*9口诀
程序书算法精题–JS版9*9口诀分析2个for循环嵌套源码let str = '';for (let i = 1; i <= 9; i++) { for (let j = 1; j <= i; j++) { str += i + '×' + j + '=' + (i * j) + '\t'; } str += '\n';}console.log(str);console...原创 2020-08-26 14:17:02 · 230 阅读 · 0 评论 -
7. 将一个正整数分解质因数. 如: 输入 90, 打印出90 = 2 * 3 * 3 * 5
程序书算法精题–JS版将一个正整数分解质因数. 如: 输入 90, 打印出90 = 2 * 3 * 3 * 5分析先拆分这个整数90, 利用for循环 + if 分解质因数, 并追到到数组中;Array.prototype.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度;最后遍历数组, 通过String.prototype.substring() 拼出90 = 2 * 3 * 3 * 5效果.源码// 存储因式分解的值let arr = [];// 打印的原创 2020-08-26 14:13:17 · 416 阅读 · 0 评论 -
6. 用*输出字母C的图案
程序书算法精题–JS版用*输出字母C的图案分析出现*的位置与空白的位置对应1 与 0;然后1与0组合的图案顺序存入数组.源码let x = [0, 1, 0, 1];let y = [1, 1];let target = ''for (let i = 0; i < x.length; i++) { if (x[i] == 1) { x[i] = '*' } else { x[i] = ' ' } target += ''+ x[i]}原创 2020-08-25 11:50:04 · 869 阅读 · 0 评论 -
5. 输入三个整数x, y, z, 请把这三个数由小到大输出.
程序算法精题–JS版输入三个整数x, y, z, 请把这三个数由小到大输出.分析可以采用冒泡排序: 将输入的整数存入数组, 然后冒泡排序也可以用Array.sort(): sort 方法可以使用 函数表达式 方便地书写sort((a, b) => a - b)注意sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的由于它取决于具体实现,因此无法保证排序的时间和空间复杂性。源码func原创 2020-08-25 11:42:07 · 1092 阅读 · 0 评论 -
4. 输入某年某月某日, 判断这一天是这一年的第几天?
程序算法精题–JS版输入某年某月某日, 判断这一天是这一年的第几天?分析设年月日分别为y, m, d判断这一年是平年还是闰年: (y % 4 == 0 && y % 100 != 0) || y % 400;判断月份:1,3,5,7,8,10,12为31; 4,6,9,11为30; 2为28或29;源码function isDay(y, m, d) { // 月份对应天数 let day; // 累计天数 let days = 0; if (m原创 2020-08-25 11:20:25 · 1162 阅读 · 0 评论 -
3. 一个整数, 它加上100后是一个完全平方数, 再加上168又是一个完全平方式,请问该数是多少?
程序算法精题–JS版一个整数, 它加上100后是一个完全平方数, 再加上168又是一个完全平方式,请问该数是多少?分析假设该数为xx + 100 = n^2; x + 100 + 168 = m^2;m^2 - n^2 = (m + n) * (m - n) = 168;设 i = m + n; j = m - n; i * j = 168; // i, j => 至少有一个是偶数m = (i + j) / 2; n = (i - j) / 2; // i, j 都为偶数或奇数原创 2020-08-25 11:10:34 · 700 阅读 · 0 评论 -
2. 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时, 奖金可提10%;利润高于10万元, 低于20万元时, 低于10万元的部分按10%提成,...
程序算法精题–JS版2. 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时, 奖金可提10%;利润高于10万元,低于20万元时, 低于10万元的部分按10%提成, 高于10万元的部分, 可提成7.5%; 20万到40万之间时,高于20万元的部分, 可提成5%; 40万到60万之间时, 高于40万元的部分, 可提成3%; 60万元100万元之间时, 高于60万元的部分, 可提成1.5%, 高于100万元时, 超过100万元的部分按1%提成, 从键盘输入当月利润(I), 求应发放奖金总数?分析原创 2020-08-25 01:47:32 · 6879 阅读 · 1 评论 -
1. 有1,2,3,4个数字, 能组成多少个互不相同且无重复数字的三位数? 都是多少?
程序算法精题–JS版1. 有1,2,3,4个数字, 能组成多少个互不相同且无重复数字的三位数? 都是多少?分析百十个位数字都可以是1, 2, 3, 4组成所有的排列后在去掉不满足条件的排列: 无重复数字源码for (let i = 1; i < 5; i++) { for (let j = 1; j < 5; j++) { for (let k = 1; k < 5; k++) { if (i != j && j != k &原创 2020-08-25 01:30:42 · 656 阅读 · 0 评论
分享