伪随机数的(人人2018校招)

来源:互联网 发布:泰国数据漫游资费 编辑:程序博客网 时间:2024/06/05 02:36

题目描述:

   输入一个数n,表示你要生成的随机数的位数,它会生成一个n位不含前导0的正十进制数,但它生成的数的第i位(从左向右)永远不等于i,

 比如长度为1的数,它不会生成0和1;如果生成位数长度为2的数,它不会生成10,11,12,13,14,15,16,17,18,19,22,32,42,52,62,72,82,92,现在想知道对于给定一个数n,它一共可能生成多少个不同的数?

输入:

    第一行包含一个整数n(1<= n <=100)

输出:

   输出对应的答案

样例输入:

1

样例输出:

8



此题思想比较简单,直接上代码。

public class Main{public static void main(String[] args){//排列组合Scanner in = new Scanner(System.in);int n = in.nextInt();if(n==1){System.out.println(8);}else if(n>1&&n<10){int a = 8*(int)Math.pow(9, n-1);System.out.println(a);}else {/* 因为到十位的时候每一位都有十种选择 * 所以直接在后面添0就行了 */Integer a = 8*(int)Math.pow(9,8);String s = a.toString();for(int i=0;i<n-9;i++){s+="0";}System.out.println(s);}}                                                           }


原创粉丝点击