题目内容
100可以表示为带分数的形式:100=3+69258714
还可以表示为:100=82+3546197
注意特征:带分数中,数字 1∼9分别出现且只出现一次(不包含 0)。
类似这样的带分数,100有 11种表示法。
输入格式
一个正整数。
输出格式
输出输入数字用数码 1∼9不重复不遗漏地组成带分数表示的全部种数。
数据范围
1 ≤ N < 106 1≤N<106 1≤N<106
样例
输入样例1
100
输出样例1
11
输入样例2
105
输出样例2
6
题目以及算法分析
这道题目要求我们从1-9的数字中组合出满足题意的可以表示出n的三个数字,因此我们最容易想到的是直接枚举1-9的所有全排列,并且在9个数字中间加两个隔板,以此求得三个数字,然后判断三个数字是否合法。容易知道,9个数字的全排列是 9 ! = 362 , 880 9! = 362,880 9!=362,880,然后枚隔板的复杂度为 C 8 2 = 28 C_8^2=28 C82=28, 9 ! × 28 = 10 , 160 , 640 9! \times 28=10,160,640 9!×28=10,160,