每日一题:Day9

Day9
链接:https://www.nowcoder.com/questionTerminal/6ffdd7e4197c403e88c6a8aa3e7a332a
来源:牛客网

末尾0的个数

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2
输入描述:
输入为一行,n(1 ≤ n ≤ 1000)
输出描述:
输出一个整数,即题目所求
示例1
输入:
10
输出:
2
【解题思路】:
能被5(5^1)整除的提供1个0
能被25(5^2)整除的提供2个0
能被125(5^3)整除的提供3个0
能被625(5^4)整除的提供4个0
所以 结果= n/5 + n/25 + n/125 + n/625
那么我们在计算n的阶乘时,实际上就是把所有小于等于n的正整数分解成质因数,然后再将其乘到一起,那么末尾0的个数实际上就是2*5的个数,而2的个数明显是很多很多的,所以问题就转化成了5的个数。而只有5的倍数才有5这个因数,所以,问题就进一步简化为小于等于n的数中有多少个数是5的倍数,当然25的倍数,125的倍数,625还要单独考虑。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int count=0;
        for(int i=n;i>=5;i--){
            int temp=i;
            while(temp%5==0){
                count++;
                temp/=5;
            }
        }
       System.out.println(count);
    }
}

链接:https://www.nowcoder.com/questionTerminal/ae809795fca34687a48b172186e3dafe
来源:牛客网

数字颠倒

描述:
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
示例1
输入:
1516000
输出:
0006151
【解题思路】:
每次取得当前数的个位数然后拼接到目标数的最前面即完成倒序。
num%10取得个位数,Num/10进入下一轮循环

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt();;
        String res="";
        while(num!=0){
            int t1=num%10;
            int t2=num/10;
            res=res+String.valueOf(t1);
            num=t2;
        }
        System.out.println(res);
    }
}
也可以用StringBuffer
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        StringBuffer sb=new StringBuffer(str);
        sb.reverse();
        System.out.println(sb.toString());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值