357. 统计各位数字都不同的数字个数

文章目录


给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。

在这里插入图片描述


数学概率统计

在这里插入图片描述

纯粹的数学模拟问题,直接先C计算首位数字,后A计算其余数字
fun函数功能时计算A函数,即A!

class Solution {
    
    
    public int countNumbersWithUniqueDigits(int n) {
    
    

        int count = 0;
        if (n > 10) {
    
    
            n = 10;
        }

		if(n==0)
			return 1;
        //先取数子,后排序,注意0的位置不可以开头
        while (n > 0) {
    
    
            //先取首位,后判断尾巴
            if (n == 1) {
    
    
                count += 10;
            } else {
    
    
                count += 9.0 * fun(9) / fun(10 - n) ;
            }
            n--;
        }

        return count/1;
    }


//-------------------------------------------------------
    public static int fun(int num) {
    
    
        int count = 1;
        while (num > 0) {
    
    
            count *= num--;
        }
        return count;

    }


}

遍历

为了保护电脑,就不造作了,反正肯定会超时。

猜你喜欢

转载自blog.csdn.net/qq_44627608/article/details/124100808