题目1:有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
思路分析:
可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
还没接触算法的时候,我们以为计算机进行计算时,用了什么高深的技术,真实情况是计算机大多数用的都是最笨的办法,就比如这个例子,就是这三组数字,没一个数字都与另外两组数字进行组合,然后从众多组合的数字中,找出互不相同且无重复数字的三位数,所以我们用到了3个嵌套的循环,就能组合出所有组合的数字,可我们只需要找到互不相同且无重复数字的三位数,所以我们必须对对循环里的三个变量进行判断,只有它们都不相同时,再输出,同时记录它们的个数,如下代码:
<!DOCTYPE html>
<html>
<head>
<title>C 语言实例100题</title>
</head>
<body>
<script type="text/javascript">
var sum=0;
for(var i=1;i<5;i++)
{
for(var j=1;j<5;j++)
{
for(var k=1;k<5;k++)
{
if(i!=k&&k!=j&&i!=j)
{
sum++;
console.log(''+i+k+j);
}
}
}
}
console.log(sum);
</script>
</body>
</html>