乐视编程第二题(二)

在上一篇中给出了一个双重循环的算法,用来达到题目要求,但是很明显,上述方法的算法的复杂度比较大, 我们给出另一种解法。
import java.io.*;
import java.util.*;
class Main
{
	public static void main(String[] args)
    <span style="white-space:pre">	</span>{
        <span style="white-space:pre">	</span>Scanner in=new Scanner(System.in);
        <span style="white-space:pre">	</span>int i=0;
		int arr,brr;
        <span style="white-space:pre">	</span>while(in.hasNextInt())
        <span style="white-space:pre">	</span>{
	    <span style="white-space:pre">		</span>int temp=0;
            <span style="white-space:pre">		</span>arr=in.nextInt();
            <span style="white-space:pre">		</span>brr=in.nextInt();
            <span style="white-space:pre">		</span>double min=arr*(1+0.05/0.95);
            <span style="white-space:pre">		</span>double max=arr*(1+0.10/0.9);
            <span style="white-space:pre">		</span>if((arr>brr)||(brr>2000000000))//不满足要求时
                <span style="white-space:pre">		</span>return ;
            <span style="white-space:pre">		</span>int start=(int)(min/5);
			start=start*5;
            <span style="white-space:pre">		</span>for(double k=start;k<=max&&k<=brr;k=k+5)
			{
				if (k>=min)
                <span style="white-space:pre">		</span>temp++;
			}
            <span style="white-space:pre">		</span>System.out.println(temp);
        <span style="white-space:pre">	</span>}
    <span style="white-space:pre">	</span>}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值