- 題目1:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成笆载。
利潤(rùn) (I) 低于或等于 10 萬(wàn)元時(shí)扑馁,獎(jiǎng)金可提 10% ;利潤(rùn)高于 10 萬(wàn)元凉驻,低于 20 萬(wàn)元時(shí)腻要,低于 10 萬(wàn)元的部分按 10% 提成,高于 10 萬(wàn)元的部分沿侈,可可提成 7.5% 闯第; 20 萬(wàn)到 40 萬(wàn)之間時(shí),高于 20 萬(wàn)元的部分缀拭,可提成 5%咳短;40 萬(wàn)到 60 萬(wàn)之間時(shí)高于 40 萬(wàn)元的部分,可提成 3% 蛛淋;60 萬(wàn)到 100 萬(wàn)之間時(shí)咙好,高于 60 萬(wàn)元的部分,可提成 1.5% 褐荷, 高于 100 萬(wàn)元時(shí)勾效,超過(guò) 100 萬(wàn)元的部分按 1% 提成,從鍵盤輸入當(dāng)月利潤(rùn) I ,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)层宫?
<script>
function calc(sales){
var bonus=0;//定義bonus=0;
if(sales>100){//如果sales>100
//(sales-100)*0.01杨伙,累加到bonus上
bonus+=(sales-100)*0.01;
sales=100;//sales=100
}
if(sales>60){//如果sales>60
//(sales-60)*0.015,累加到bonus上
bonus+=(sales-60)*0.015;
sales=60;//sales=60
}
if(sales>40){//如果sales>40
//(sales-40)*0.03萌腿,累加到bonus上
bonus+=(sales-40)*0.03;
sales=40;//sales=40
}
if(sales>20){//如果sales>20
//(sales-20)*0.05限匣,累加到bonus上
bonus+=(sales-20)*0.05;
sales=20;//sales=20
}
if(sales>10){//如果sales>10
//(sales-10)*0.075,累加到bonus上
bonus+=(sales-10)*0.075;
sales=10;//sales=10
}
//sales*0.1,累加到bonus上
bonus+=sales*0.1;
return bonus;//返回bonus
}
console.log(calc(50));//輸出利潤(rùn)50w
</script>
- 題目2:輸入某年某月某日毁菱,判斷這一天是這一年的第幾天米死?
var y, m, d,days=0;
y=parseInt(prompt("輸入年"));
m=parseInt(prompt("輸入月"));
d=parseInt(prompt("輸入日"));
switch(m-1){
case 11:
days+=30;
case 10:
days+=31;
case 9:
days+=30;
case 8:
days+=31;
case 7:
days+=31;
case 6:
days+=30;
case 5:
days+=31;
case 4:
days+=30;
case 3:
days+=31;
case 2:
days+=(y%4==0&&(y%100!=0)||(y%400==0)?29:28);
//閏年的條件:能被4整除且不能被100整除,或者能被400整除
case 1:
days+=31;
default:
break;
}
days+=d;
console.log("這是這一年中的第"+days+"天");
<script>
function days(y,m,d){
var days=0;//定義days保存總天數(shù)
//如果m>11,就累加30
if(m>11) days+=30;
//如果m>10,就累加31
if(m>10) days+=31;
//如果m>9,就累加30
if(m>9) days+=30;
//如果m>8,就累加31
if(m>8) days+=31;
//如果m>7,就累加31
if(m>7) days+=31;
//如果m>6,就累加30
if(m>6) days+=30;
//如果m>5,就累加31
if(m>5) days+=31;
//如果m>4,就累加30
if(m>4) days+=30;
//如果m>3,就累加31
if(m>3) days+=31;
//如果m>2,就累加28
if(m>2) days+=28;
//如果m>1,就累加31
if(m>1) days+=31;
days+=d;//再累加d
//如果m>2且是閏年,就days再加1
if(m>2&&
(y%4==0&&y%100!=0||y%400==0))
days+=1;
return days;//返回days
//閏年判斷條件:2種情況都行
// 1. y能被4整除且不能別100整除
// 2. y能被400整除
}
console.log(
days(1998,5,15),
days(2000,4,20)
);
</script>
- 題目3:有 1 贮庞、 2 峦筒、 3 、 4 個(gè)數(shù)字窗慎,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)物喷?都是多少?
<script>
//外層循環(huán)控制百位,count記錄循環(huán)執(zhí)行次數(shù)
for(var i=1,count=0;i<5;i++)
//中層循環(huán)控制十位
for(var j=1;j<5;j++)
//只有i!=j時(shí)捉邢,才有必要執(zhí)行內(nèi)層循環(huán)
if(i!=j)
//內(nèi)層循環(huán)控制個(gè)位
for(var k=1;k<5;k++){
//如果i!=j且j!=k且i!=k
if(j!=k&&i!=k)
console.log(""+i+j+k);
count++;//循環(huán)次數(shù)+1
}
console.log("循環(huán)了"+count+"次");
</script>
- 題目4脯丝,經(jīng)典題:斐波拉茨
古典問(wèn)題:有一對(duì)兔子,從出生后第 3 個(gè)月起每個(gè)月都生一對(duì)兔子伏伐,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死晕拆,問(wèn)每個(gè)月的兔子總數(shù)為多少藐翎?
Fibonacci 斐波那契
f(1)=1 f(2)=1 f(3)=f(n-1)+f(n-2)...
1 1 2 3 5 8 13 21 34 55
<script>
// 遞歸
function fib(n){
if(n<3) return 1;
else
return fib(n-1)+fib(n-2);
}
</script>
<script>
//循環(huán):
function fib(n){
if(n<3) return 1;
else{
//定義fn1,fn2,都初始化為1
var fn1=1,fn2=1,fn;
for(var i=0;i<n-2;i++){//循環(huán)n-2次:
fn=fn1+fn2;
fn1=fn2;
fn2=fn;
}
return fn;//返回fn
}
}
console.log(
fib(7),//13
fib(10)//55
);
//遞歸調(diào)用: 函數(shù)內(nèi)部实幕,又調(diào)用了自己
//缺點(diǎn): 計(jì)算重復(fù)次數(shù)和復(fù)雜度極高吝镣,效率極低
//解決: 幾乎所有遞歸都可用循環(huán)代替!
</script>