題目1:有 1 、 2 、 3 、 4 個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?
思路分析:
可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。
還沒接觸算法的時(shí)候,我們以為計(jì)算機(jī)進(jìn)行計(jì)算時(shí),用了什么高深的技術(shù),真實(shí)情況是計(jì)算機(jī)大多數(shù)用的都是最笨的辦法,就比如這個(gè)例子,就是這三組數(shù)字,沒一個(gè)數(shù)字都與另外兩組數(shù)字進(jìn)行組合,然后從眾多組合的數(shù)字中,找出互不相同且無重復(fù)數(shù)字的三位數(shù),所以我們用到了3個(gè)嵌套的循環(huán),就能組合出所有組合的數(shù)字,可我們只需要找到互不相同且無重復(fù)數(shù)字的三位數(shù),所以我們必須對對循環(huán)里的三個(gè)變量進(jìn)行判斷,只有它們都不相同時(shí),再輸出,同時(shí)記錄它們的個(gè)數(shù),如下代碼:
<!DOCTYPE html>
<html>
<head>
<title>C 語言實(shí)例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>