java【基础】连续0的个数

 题目描述

4岁的阿尔和6岁的爱德华是两兄弟,从小就对炼金术很有兴趣。一天,阿尔看到哥哥在算乘法,阿尔看了觉得很新奇,怎么哥哥计算出来的结果后面那么多圈圈,原来这是他们温柔的妈妈安排爱德华做的一道数学题,要他计算从a到b所有整数的乘积。妈妈看到阿尔看得那么入神,也想考验一下阿尔,对阿尔说:“你能数出哥哥计算的结果末尾的0有多少个吗?”,聪明的阿尔把计算结果看了1秒很快就把正确答案告诉妈妈,你也能和阿尔一样聪明吗?输入两个正整数a和b,求a到b之间(包含a、b)所有整数的积末尾有多少个0。

 输入

【输入格式】

一行,分别表示a和b

输出

【输出格式】

一行,0的个数

样例输入
1 10
样例输出 
2

代码:

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int a=sc.nextInt();
		int b=sc.nextInt();
		int sum=0,num=0,num2=0;//sum:含5的累加器;num与num2分别赋i,以防冲突
		int even=0;//计算有多少个偶数;
		for(int i=a;i<=b;i++) {
			num=i;
			num2=i;
			while(num%5==0) //num取模为0时
			{
				sum++;
				num/=5;
				if(num==0) {
					break;
				}
			}
			while(num2%2==0) //num2取模为0时
			{
				even++;
				num2/=2;
				if(num2==0) {
					break;
				}
			}
		}
		if(even >= sum)//偶数的累加器个数比含5的累加器大我们就输出输出含5的累加次数,反之偶数类加的次数。
		{
			System.out.print(sum);
		}
		else
		{
			System.out.print(even);
		}
		
	}

}

 分析:

  1. 求a*2*3*4....*b;
  2. 求5的个数,因为任意偶数乘5都的10
  3. 如过n=25时,1-10有2个0,11-20也有2个0。但19-25也有2个,因为5*5=25
  4. 求偶数的个数,如果a=255,b=256的的话,a*b=15,750,只有一个0,所以我们算偶数的个数。
  5. 为什么是偶数?比如说1~5之间(包含5),2与4为偶数,而5有1个。所以偶数的个数比含5的大我们就输出偶数类加的次数,反之输出含5的累加次数。

运行结果

总结: 

  其实这题主要求的是5的个数,还有偶数的个数,并且累加,还得注意5*5==25的这种类型,还有a=255,b=256这种类型。

如果还有其他的写法还可以在下方留言QWQ

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值