• 新博第一篇,思考的重要性与求质数算法


      微博开通后的第一篇文章,哈哈,我终于也有博客了~

      废话不多说,直接上感悟。

      前两天在等待博客的申请中,浏览博问时看到了一个问题,引发了万千思绪啊,在这里记录一下,不是为了记录算法,而是为了提醒小伙伴们:虽然我们的最终目的是实现代码,但是思考的过程也同样很重要!

      就像我们开发组里老大说的那样:一个好的开发只有30%的时间实在写,而其余70%的时间都是在想,不要仅仅只做一个coder。

      下面我们开始思考:

      问题是这样的:求一个给定区间内的质数。

        1、什么是质数?只能被1跟自己整除的数,也叫素数。

        2、通过两层循环来实现。第一层循环用来循环需要做判断的数,第二层循环,则进行对该数是否为质数进行判断。

        3、同时我们需要考虑到,只要第二次循环中判断出一次不是质数,那么该数就肯定不会是质数了。

        4、于是我们可以考虑在每次外层循环开始时,使用一个布尔值变量来记录该数是否为质数,在内层循环中,只要判断一次非质数,那么我们就直接记录为非质数

        5、最后,我们在内层循环全部结束后进行一次if判断该数最终是否为质数。

        6、上代码:

     

      javascript:

    function doIt(min,max) {
      //声明一个布尔值变量:记录否为是质数。
      var isTrue
      for(var i = min; i <= max; i++) {
        //每次循环开始,重置一次是否为质数。
        isTrue = true;
        for(var j = 2; j < i; j++){
          if(i % j == 0){
            //除于==0说明有能被整除的数,那么不是质数,直接将该数记录为非质数。
            isTrue = false;
            break;
          }
        }
        //内层循环结束后,判断最终结果,到底是否为质数并打印出来。
        if(isTrue){
          console.log(i);
        }
      }
    }
    doIt(101,200);

      typescript:

    class getPrimeNumber {
      private isTrue: boolean;
      private primeNumberList: number[] = [];
      getPrimeNumber(min: number, max: number): number[] {
        for (let i = min; i <= max ; i ++) {
          this.isTrue = true;
          for (let j = 2; j < i; j ++) {
            if(i % j == 0) {
              this.isTrue = false;
              break;
            }
          }
          if(this.isTrue){
            this.primeNumberList.push(i);
          }
        }
        return this.primeNumberList
      }
    }
    
    let primeNumberList = new getPrimeNumber().getPrimeNumber(101, 200);
    console.log(primeNumberList);

      java:

    public class GetPrimeNumber {
      private boolean isTrue;
      public void getPrimeNumber(int min, int max) {
        for(int i = min; i <= max; i ++){
          isTrue = true;
          for(int j = 2; j < i; j ++){
            if(i % j == 0){
              isTrue = false;
              break;
            }
          }
          if(isTrue){
            System.out.println(i);
          }
        }
      }
                    
      public static void main(String []args) {
        GetPrimeNumber gpn = new GetPrimeNumber();
        gpn.getPrimeNumber(101, 200);
      }
    }

      思路真的很重要,虽然这对于我们来说只是一个简单的算法。
      欢迎大家来吐槽,或者发表您的见解^o^。

  • 相关阅读:
    lostash 正则
    Mysql 利用multiline 实现多行匹配
    java中byte, int的转换
    mysql perl 抓取update语句
    $/ 改变换行符
    mysql 匹配update
    perl binlog dml操作报告
    mysql 分区 按 PARTITION BY RANGE (TO_DAYS(startTime))
    Mysql explain 查看分区表
    写作的力道——北漂18年(番外篇一)
  • 原文地址:https://www.cnblogs.com/guofan/p/6530014.html
Copyright © 2020-2023  润新知