欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

N!

程序员文章站 2022-06-02 20:12:55
...

N!

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

阶乘(Factorial)是一个很有意思的函数,但是不少人都比较怕它。现在这里有一个问题,给定一个N(0<0<1000000000),求N!的二进制表示最低位的1的位置(从右向左数)。

输入
本题有多组测试数据,每组数据一个正整数N(0<0<1000000000),以EOF结束
输出
求N!的二进制表示最低位的1的位置(从右向左数)。一组数据占一行。
样例输入
1
2
3
4
样例输出
1
2
2
4
提示
2! = (2)10 = (10)2,则第一个1是第二位
3! = (6)10 = (110)2,则第一个1是第二位

4! = (24)10 = (11000)2,则第一个1是第四位


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while (scanner.hasNext()) {
			int result = 0;
			int number = scanner.nextInt();
			while (number > 0) {
				number /= 2;
				result += number;
			}
			System.out.println(result + 1);
		}
	}

}


相关标签: N