• 算法学习——枚举之最简真分数


    算法描述

    统计分母在指定区间[100,999]的最简真分数(分子小于分母,且分子分母无公因数)共有多少个,并求这些最简真分数的和

    算法思路

    1. 对于指定区间,分母的枚举范围为 100~999 即是输入的a与b,分子最小为1,最大则比分母少一(等于分母的话就无意义)

    2. 分子与分母与某个数整除,如果同为0,这说明分子与分母有公因数

    算法实现

    	int a,b;//上限与下限
    	boolean isCommon = false;//分子与分母无公因数
    	long m=0;//公因数的个数
    	int t;
    	double result=0;//和
    	Scanner scanner = new Scanner(System.in);
    	System.out.println("依次输入分母上限与下限:");
    	System.out.println("上限:");
    	a=scanner.nextInt();
    	System.out.println("下限:");
    	b = scanner.nextInt();
    	scanner.close();
    	//分母的范围 a到b
    	//分子的范围1到i-1(分母-1)
    	for(int i=a;i<=b;i++){
    		for(int j=1;j<=i-1;j++){
    			for(isCommon=false,t=2;t<=j;t++){
    				if(i%t==0 && j%t==0){
    					isCommon = true;
    					break;
    				}
    			}
    			if(!isCommon){
    				m++;
    				result = result + (double)j/i;
    			}
    		}
    	}
    	System.out.println(m);
    	System.out.println(result);
    

    结果

  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/stars-one/p/9651512.html
Copyright © 2020-2023  润新知