下面各题解法可能存在一些时间和空间复杂度问题,有些没有做到最优化,还请谅解!!!

1、用for循环实现10的阶乘。

  1. //使用for循环方法解答
  2. var num = 10
  3. var sum = 1;
  4. var str = '';
  5. for(var i=10;i>=1;i--){
  6. sum *= i;
  7. if(i == 1){
  8. str += i;
  9. }else{
  10. str += i+'*';
  11. }
  12. }
  13. console.log(num+'! = '+str+' = '+sum);

2、打印九九乘法表

  1. for(var i=1;i<=9;i++){
  2. var str = '';
  3. for(var j=1;j<=i;j++){
  4. str += i+'*'+j+'='+i*j+'\t';
  5. }
  6. console.log(str);
  7. }

3、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?【该处时间复杂度相对较大,代码仅供参考】

  1. var n =10;
  2. var str = '';
  3. for(var i=1;i<=n;i++){
  4. for(var j=1;j<=n;j++){
  5. if(j != i){
  6. for(var k=1;k<=n;k++){
  7. if(k != i && k != j){
  8. str = str+i+j+k+'\t';
  9. }
  10. }
  11. }
  12. }
  13. }
  14. console.log(str);

4、判断101-200之间有多少个素数,并输出所有素数(只能被1和它本身整除的自然数为素数)
// console.log(Math.sqrt(101));  //101开平方

  1. var str = '';
  2. var count = 0;
  3. for(var i=101;i<=200;i++){
  4. var flag = true;
  5. for(var j=2;j<=Math.sqrt(i);j++){
  6. if(i%j == 0){
  7. //不是质数
  8. var flag = false;
  9. break; //节省运算时间,后面循环不需要再执行了
  10. }
  11.  
  12. }
  13. if(flag){
  14. str += i+'\t';
  15. count++;
  16. }
  17. }
  18. console.log('101~200之间有'+count+'个素数\n分别为:\n'+str);

5、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方
// console.log(Math.pow(10,3));   //计算10的三次方

  1. for(var i=100;i<1000;i++){
  2. var hundred = parseInt(i/100);
  3. var ten = parseInt((i-hundred*100)/10);
  4. var unit = i-hundred*100-ten*10;
  5. // console.log('................');
  6. var sum = Math.pow(hundred,3)+Math.pow(ten,3)+Math.pow(unit,3);
  7. if(sum == i){
  8. console.log(i);
  9. }
  10. }

6、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

  1. var num = 90;
  2. var str = '';
  3. for(var i=2;i<=num;i++){
  4. // console.log(i);
  5. if(num == i){
  6. str += i;
  7. }
  8. while(num != i){
  9. if(isPrime(i)){
  10. // console.log(i);
  11. if (num%i == 0) {
  12. num /= i;
  13. str += i+'*';
  14. }else{
  15. break;
  16. }
  17. }else{
  18. break;
  19. }
  20. }
  21. }
  22. console.log(str);
  23.  
  24. //判断一个数是否为素数
  25. // console.log(isPrime(4)); 测试isPrime()函数
  26. function isPrime(n){
  27. var flag = true;
  28. for(var i=2;i<=Math.sqrt(n);i++){
  29. if(n%i == 0){
  30. flag = false;
  31. }
  32. }
  33. return flag;
  34. }

7、求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)

  1. /*
  2. 辗转相除法的算法为:首先将 m除以 n(m>n)得余数 r,再用余数 r 去除原来的除数,
  3. 得新的余数,重复此过程直到余数为 0时停止,此时的除数就是m 和 n的最大公约数。
  4. 求 m和 n的最小公倍数: m和 n的积除以(m和 n 的最大公约数)。
  5. */
  6. function gcdLcm(m,n){
  7. var mn = m*n;
  8. var r = m%n;
  9. while(r != 0){
  10. r = m%n;
  11. m = n;
  12. n = r;
  13. }
  14. console.log('最大公约数为:'+m+'\t最小公倍数为:'+mn/m);
  15. }
  16. gcdLcm(100,40)

8、求1000以内的完全数(若一个自然数,恰好与除去它本身以外的一切因数的和相等,这种数叫做完全数。)

  1. // var sum = 0;
  2. for(var i=1;i<=1000;i++){
  3. var sum = 0;
  4. for(var j=1;j<=i;j++){
  5. if(i%j == 0 && i!=j){
  6. sum += j;
  7. // console.log(sum);
  8. }
  9. }
  10. if(sum == i){
  11. console.log(i);
  12. }
  13. }

js的一些较为常见的语句算法题的更多相关文章

  1. JS中几种常见的数组算法(前端面试必看)

    JS中几种常见的数组算法 1.将稀疏数组变成不稀疏数组 /** * 稀疏数组 变为 不稀疏数组 * @params array arr 稀疏数组 * @return array 不稀疏的数组 */ f ...

  2. js中字符和数组一些基本算法题

    最近在刷 fcc的题,跟升级打怪一样,一关一关的过,还挺吸引我的.今天抽时间把 Basic Algorithm Scritping  这部分题做了,根据一些提示,还是比较简单的.有些题的处理方式 方法 ...

  3. 19道常见的JS面试算法题

    最近秋招也做了多多少少的面试题,发现除了基础知识外,算法还是挺重要的.特意整理了一些常见的算法题,添加了自己的理解并实现. 除此之外,建议大家还可以刷刷<剑指offer>.此外,左神在牛客 ...

  4. 常见排序算法题(java版)

    常见排序算法题(java版) //插入排序:   package org.rut.util.algorithm.support;   import org.rut.util.algorithm.Sor ...

  5. 解决死锁之路3 - 常见 SQL 语句的加锁分析 (转)

    出处:https://www.aneasystone.com/archives/2017/12/solving-dead-locks-three.html 这篇博客将对一些常见的 SQL 语句进行加锁 ...

  6. js 中的算法题,那些经常看到的

    js中遇到的算法题不是很多,可以说基本遇不到.但面试的时候,尤其是一些大公司,总是会出这样那样的算法题,考察一个程序员的逻辑思维能力.如下: 1.回文. 回文是指把相同的词汇或句子,在下文中调换位置或 ...

  7. 高性能MySql进化论(十一):常见查询语句的优化

    总结一下常见查询语句的优化方式 1        COUNT 1.       COUNT的作用 ·        COUNT(table.filed)统计的该字段非空值的记录行数 ·         ...

  8. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】

    首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...

  9. 常见的排序算法总结(JavaScript)

    引言 排序算法是数据结构和算法之中的基本功,无论是在笔试还是面试,还是实际运用中都有着很基础的地位.这不正直七月,每年校招的备战期,所以想把常见的排序算法记录下来.在本篇文章中的排序算法使用 Java ...

随机推荐

  1. Android Sensor详解(1)简介与架构【转】

    本文转载自:https://blog.csdn.net/u013983194/article/details/53244686 最近在学习有关如何porting sensor的东西,仅借此机会写博客来 ...

  2. Mac OS X 10.14.3下如何给Python2.7.10安装MySQL-Python

    最近准备再看一下python ,弄个自动化部署的工具,一来就遇到了坑 sudo pip install MySQL-Python --global-option=build_ext --global- ...

  3. Android ImageView属性

    ImageView 继承自View组件,主要功能是用于显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用ImageView来显示.ImageView可以适用于任何布局中,并且 ...

  4. java--poi读取excel图片和内容(支持03版本)

    有的时候需要将excel中所包含的图片在导入的时候取出来存到服务器中, 详细实现代码如下: package com.liuf.util; import java.io.BufferedInputStr ...

  5. vue---将json导出Excel的方法

    在做数据表格渲染的时候,经常遇到的需求的就是将导出excel,下面是使用vue进行项目数据进行导出的方法. 一.安装依赖 npm i -S file-saver npm i -S xlsx 二.在sr ...

  6. aardio调用dll

    刚知道aardio这个不错的玩具,可惜作者停更了,贴一个调用dll的例子备用吧 vc代码 extern "C" _declspec(dllexport) int _stdcall ...

  7. Jav面向对象

    /* * 面向对象: * 1.关注现实存在的事物的各方面信息,从对象的角度出发,根据事物的特征进行程序设计 * 2.对象:用来描述客观事物的一个实体 * 3.类:具有相同属性和方法的一组对象的集合 * ...

  8. python初级(302) 5 列表

    一.复习 1.函数的创建 1) def关键字 2) 函数名及后面跟随的括号 3)冒号加上函数体 2.函数的调用 函数名及后面跟随的括号 3.带一个,二个,三个参数的函数及调用 二.列表 family ...

  9. Python实用日期时间处理方法汇总

    这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime.获取当天date.获取明天/前N天.获取当天开始和结束时间(00:00:00 23:59:59).获取两个d ...

  10. C++内存管理5-处理new分配内存失败情况(转)

    C++内存管理5-处理new分配内存失败情况(转) endl; 参考博客: https://www.cnblogs.com/findumars/p/9905195.html