如何计算000000和999999之间只包含两个不同数字的数字?
例如000001可以算作一个。 002200,11222,1100000也是如此。但是112233包含三个不同的数字,因此无法计算。
由于
答案 0 :(得分:3)
让我们简化问题。
假设我们需要找到仅0
,1
的所有数字排列。所以可能的组合可以是000011,000001,001110等。因为需要有2个不同的数字可以有以下组合:
[Zeroes, Ones]: {1,5},{2,4},{3,3},{4,2},{5,1}
这意味着1个零5个将具有:000001,000010,000100,001000,010000,100000
因此,如果有Z
个零,那么 6 C Z 组合与 Z 零和 6 - Z 。
由于 Z 可以有 1-5 的值,我们可以说有 5 Σ Z = 1 6 C Z 可能的数字,0,1组合,至少1 0 & 1 一个。
现在回到原来的问题因为有10个数字,我们需要两个不同的数字,所以 10 C 2 即 45 组合将是那里有:{0,1},{0,2} ..... {1,2} ....
所以答案是 10 C 2 * 5 Σ Z = 1 6 C <子>ž子> 强>
答案 1 :(得分:0)
由于您没有指定任何特定的编程语言,我使用了正确评论的javascript。希望它可以帮到你。
var counter = 0; // this counts if it contains exactly two different digits only
for(var i=10000; i<10005 ; i++) { // change the loop values as you need
var x = i.toString(); // converting number to string which makes easy to split
var chars = x.split(''); // split characters and keep in an array
var uniqueChars = Array.from(new Set(chars)); // get distinct characters from array
if(uniqueChars.length == 2){ // check if it contains exactly two elements
counter++;
}
}
console.log(counter);