昨天下午做了微众银行的Java开发在线笔试题,编程题一共三道,记录一下解答思路
第二题给的题目意思很绕,而且表达的意思也很复杂,感觉在做语文阅读理解,最后发现要表达的意思就是:一个数二进制有n位,那么确定这个数需要对每一位询问,也就是询问n次但是有n!种问法,输出n!
比如3代表这个数是二进制表示是有3位,是一个介于0-7之间的数,需要分别确认第一位,第二位,第三位是不是0;根据确认的顺序不同,一共有3!种方案
最后就是求n的阶乘…然后题目要求返回得到的结果对1000003取余,注意不能用int,要用long,不然会溢出。
代码如下:
import java.util.Scanner;
/**
* Created by wsw on 2019/9/19 16:57
* 询问次数
*/
public class Main2