码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript(1)——编程真善美

时间:2019-09-15 23:50:12      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:art   开发   判断   case   spec   math   第一个   int()   适应   

编程真善美

命名风格:

驼峰命名法

小驼峰法

变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写:camelCase

大驼峰法(即帕斯卡命名法)

相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名属性命名空间等:CamelCase

下划线命名法

单词间用下划线(_)分割 :underscope_case

编程切入点:

先制造核心发动机,不用忙着写主程序,每个方法要有文档:

例子:输入给定范围内的素数

package cn.edu.mju.dev;

import java.util.Scanner;

public class PrimeFinder {

    /**
     * main function
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("start:");
        int begin, end, count = 0;
        long sum = 0;
        begin = scanner.nextInt();
        System.out.println("end:");
        end = scanner.nextInt();
        for(int i = begin; i <= end; i++){
            if(isPrime(i)) {
                count ++;
                sum += i;
                System.out.print("\t"+i);
                if(count % 10 == 0) System.out.println();
            }
        }
    }
    
    
    /**
     * 判断是否是质数
     * @param 带判定的数
     * @return
     * true 是质数
     * false 不是质数
     */
    private static boolean isPrime(int num) {
        // special case
        if(num <= 1)    return false;
        if(num == 2) return true;
        // general case
        int i;
        for(i = 2; i < num; i++) {
            if (num % i == 0) break;
        }
        return i == num;
    }
}

上例算法不够先进,我们需要进行代码的优化,只要判断待测数num能不能被2-待测数的平方根√num整除即可:

package cn.edu.mju.dev;

import java.util.Scanner;

public class PrimeFinder {

    /**
     * main function
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("start:");
        int begin, end, count = 0;
        long sum = 0;
        begin = scanner.nextInt();
        System.out.println("end:");
        end = scanner.nextInt();
        for(int i = begin; i <= end; i++){
            if(isAdvPrime(i)) {
                count ++;
                sum += i;
                System.out.print("\t"+i);
                if(count % 10 == 0) System.out.println();
            }
        }
    }
    
    
    /**
     * 判断是否是质数
     * @param 带判定的数
     * @return
     * true 是质数
     * false 不是质数
     */
    private static boolean isPrime(int num) {
        // special case
        if(num<1)    return false;
        if(num == 2) return true;
        // general case
        int i;
        for(i = 2; i < num; i++) {
            if (num % i == 0) break;
        }
        return i == num;
    }
    
    /**
     * 判断是否是质数(大数据适应版)
     * @param 带判定的数
     * @return
     * true 是质数
     * false 不是质数
     */
    private static boolean isAdvPrime(int num) {
        // special case
        if(num <= 1)    return false;
        if(num == 2) return true;
        // general case
        int i;
        int sqrt = (int)Math.sqrt(num);
        for(i = 2; i <= sqrt; i++) {
            if (num % i == 0) break;
        }
        return i == sqrt + 1;
    }
}

总结:

  1. 测试驱动的开发:(Test-Driven-Development)
  2. 模块化开发
  3. 技术沉淀

 

JavaScript(1)——编程真善美

标签:art   开发   判断   case   spec   math   第一个   int()   适应   

原文地址:https://www.cnblogs.com/Magic-Dev/p/11524200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!