今天學習了js中基本的窮舉法,求水仙花數、階乘、求和、找因數、找質數等。
求三位數的個位、十位、百位方法:
var ge=i%10;//求個位
var shi=parseInt(i%100/10);//求十位
var bai= parseInt(i/100);//求百位
下面是簡單的練習:
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>js-窮舉算法</title>
6 </head>
7 <body>
8 <script>
9 //找出能被num整除的所有數
10 var num=parseInt(prompt("請輸入一個數字"));
11 for(var i=1;i<=num;i++){
12 if(num%i==0){
13 console.log(i);
14 }
15 }
16
17 //找出60以下(逢7過)的安全數
18 for(var i=1;i<60;i++){
19 if(i%7!=0&&i%10!=7){
20 console.log(i);
21 }
22 }
23
24 //找出1000以内的所有水仙花數
25 for(var i=100;i<999;i++){
26 var bai=parseInt(i/100);//擷取百位數
27 var shi=parseInt(i%100/10);//擷取十位數
28 var ge=i%10;//擷取個位數
29 //判斷是否符合水仙花數的特點a3+b3+c3=i
30 var a=Math.pow(bai,3);
31 var b=Math.pow(shi,3);
32 var c=Math.pow(ge,3);
33 if (a+b+c==i) {
34 console.log(i);
35 };
36 }//153,370,371,407
37
38 //求1到100的和
39 var num=0;
40 for(var i=1;i<=100;i++){
41 num+=i;
42 }
43 console.log(num);//5050
44
45 //求1到13的階乘
46 var num=1;
47 for(var i=1;i<=13;i++){
48 num=num*i;
49 }
50 console.log(num);//6227020800
51
52 //找因數
53 var amount=0;
54 var num=parseInt(prompt("請輸入一個整數"));
55 for(var i=1;i<=num;i++){
56 if(num%i==0){
57 amount++;
58 }
59 }
60 alert(amount);//輸入48,結果為10
61
62 //找質數(隻能被1和自己整除的數)
63 var amount=0;
64 var num=parseInt(prompt("請輸入一個整數"));
65 for(var i=1;i<=num;i++){
66 if(num%i==0){
67 amount++;
68 }
69 }
70 if(amount>2) {
71 alert("不是質數");
72 }else{
73 alert("是質數");
74 }
75 </script>
76 </body>
77 </html>
七夕快樂!