基本js一些出過錯的案例
1.任意輸入一個正整數,判斷這個數的位數?
var num = parseInt(prompt("請輸入一個數"));
var sum = 0;
while (num>0){
sum =sum+1;
num = parseInt(num/10);
}
alert(sum);
2.編寫函式,功能是將三個數按照從小到大順序輸出
function pai(a,b,c){
var temp;
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=b;
b=c;
c=temp;
}
console.log(a,b,c);
}
pai(6,7,4);
.3輸出:100可以拆成哪兩個素數的和
function isPrimeNumber(num){
//是素數返回true,否則返回false
for (var i = 2; i < num; i++) {
if(num%i == 0){
return false;
}
}
return true;
function box(){
for (var i = 1; i < 50; i++) {
if(isPrimeNumber(i)){//呼叫判斷是否是素數的函式
//console.log(i);
var s2 = 100-i;
if(isPrimeNumber(s2)){
console.log(s2,i);
}
}
}
}
box();
4.函式實現:輸出1—3之間能組成的奇數個數,並輸出這些數
要求 : 組成的數是一個兩位數,個位數!=十位數
組成: 13 21 23 31 共4個
1 2 3
1 2 3
function box(){
for (var i = 1; i <= 3; i++) {
for (var j = 1; j <= 3; j++) {
if(i!=j){
var str = ""+i+j;
//console.log(str);
if(str%2 == 1){
console.log(str);
}
}
}
}
}
box();
.函式的遞迴呼叫案例
1.用函式實現一個數的迴圈,輸出100到1;
function box(a){
if(a==0){
return;
}
console.log(a);
a--;
box(a);
}
box(100)
2.普通函式實現帶返回值的從1-100累加的和;
function box(a){
if(a==0){
return 0;
}
return a+box(a-1);
}
alert(box(100));
3.遞迴實現1--100以內所有偶數的和
function box(a){
if(a==0){
return 0;
}
if(a%2==0){
return a+box(a-2);
}
}
alert(box(100));
4.遞迴實現一個數的階乘
function box(a){
if(a==1){
return 1;
}
return a*box(a-1);
}
alert(box(5));
5.遞迴實現斐波那契數列的第n項
// 1 1 2 3 5 8 13 21 34....
// 第一項是0 第二項是1 後面每一項是前面兩項的和
F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
function box(a){
if(a==1){
return 1;
}
if(a==2){
return 1;
}
if(a>2){
return box(a-1)+box(a-2);
}
}
alert(box(4));
1,如果一個數恰好等於它的真因數之和(就是不包括本身),則稱該數為“完全數” perfect number。請列出2~10000的所有完全數
第一種:function num(){
for(var i=2;i<=10000;i++){
var sum=0;
for(var j=1;j<i;j++){
if(i%j==0){
sum=sum+j;
}
}
if(sum==i){
console.log(i);
}
}
}
num();
第二種:
//1.求一個數的所有真因數的和
/*function isPerfectNumAdd(num){
var sum = 0;
for (var i = 1; i < num; i++) {
if(num%i == 0){
sum += i;
}
}
return sum;
}*/
//2.通過一個數的所有真因數的和來與當前這個數對比,如果相等說明這個數是一個完全數。
//alert(isPerfectNumAdd(7));
/*function getPerfectNum(){
for (var i = 2; i <= 10000; i++) {
if(isPerfectNumAdd(i) == i){
console.log(i)
}
}
}
getPerfectNum();
第三種:函式遞迴呼叫
function getPerfectNum(num){
if(num==10001){
return;
}
var sum = 0;
for (var i = 1; i < num; i++) {
if(num%i == 0){
sum += i;
}
}
if(sum == num){
console.log(num);
}
return getPerfectNum(num+1);
}
getPerfectNum(2);
3,編寫一個函式 :實現計算任意一個數的各個位數的和
//例如 : 234 位數和為 9
var num=parseInt(prompt("請輸入一個數"));
function fnSum(num){
var sum = 0;
while( num >0 ){
sum += num % 10; //取出個位數
num = parseInt( num/10 );
}
return sum;
}
var s = fnSum();
alert(s);