文章目錄
- 一、js的基本型別
- 1. 為抵抗洪水,戰士連續作戰89個小時,編輯計算共多少天零多少小時?
- 2. 小明要到美國旅游,可是那里的溫度是以華氏度為單位記錄的,他需要一個程式將華氏度溫度(80度)轉換為攝氏度,并以華氏度和攝氏度為單位分別顯示該溫度,(提示:攝氏度與華氏度的轉換公式為:攝氏度 = 5/9.0*(華氏度-32) 保留3位小數)
- 3. 705、816用js代碼計算兩個數字的個位、十位、百位相加的和
- 二、邏輯分支、基礎陳述句等
- 1.輸入一個月份回傳這個月有多少天
- 2.輸入一個年份/月份/日期回傳這個日期是這一年的第幾天
- 3.能被4整除不能被100整除,或者能被400整除
- 4.一個加油站為了鼓勵車主多加油,所以加多有優惠,
- 5.回傳一個隨機整數[1-100]
- 6.把字串'20150628'轉化為'2015年6月28日'
- 7.設計一個猜拳游戲(1代表石頭,2代表剪刀,3代表布),計算每次隨機出現1-3任意一個數(parseInt(Math.random()*3)+1),玩家也有三種狀態,用玩家出的數和計算出的數進行對比,按照游戲規則比出勝負
- 8.列印1-100以內的奇數
- 9.1-100中不是5的倍數
- 三、回圈陳述句
- 1. 1+2+3+...+99的和
- 2.1-100以內的偶數和
- 3.100-999之間的水仙花數
- 4.求10!
- 5.求10! + 9! +...+1!
- 6.列印直角三角形
- 7.入職薪水10k,每年漲幅5%,50年后工資多少
- 8.列印圖形
- 9.列印九九乘法表
- 10.輸出100-200之間所有的質數
- 四、函式
- 1.函式實作獲取任意區間的隨機整數
- 2.籃球從5米的地方掉下來,每次彈起的高度是原來的30%,經過幾次彈起高度不足0.1米
- 3.有一個64個方格的棋盤,在第一個方格里面放1粒芝麻的重量是0.00001kg,第二個里面放2粒,第三個里面放4,計算 棋盤上放的所有芝麻的重量
- 4.七必過, 列印1-100中,不包含7,且不是七的倍數的數字
- 5.隨機驗證碼和顏色
- 6.函式實作階乘
- 7.撰寫一個引數, 設定一個引數為n, 當n為奇數時,回傳 1 + 1/3 + 1/5 +..... + 1/n 的和, 當n為偶數時, 回傳 1 + 1/2 + 1/4 + 1/6 + ..... + 1/n 的和;
- 8.撰寫一個函式, 每次執行,回傳數字最大的一個
- 9.遞回實作階乘
- 10. 遞回實作斐波拉契
- 總結
一、js的基本型別
1. 為抵抗洪水,戰士連續作戰89個小時,編輯計算共多少天零多少小時?
var days = parseInt(89/24);
var hours = 89%24;
console.log(days + '天' + hours + '個小時'); // 3天17小時

2. 小明要到美國旅游,可是那里的溫度是以華氏度為單位記錄的,他需要一個程式將華氏度溫度(80度)轉換為攝氏度,并以華氏度和攝氏度為單位分別顯示該溫度,(提示:攝氏度與華氏度的轉換公式為:攝氏度 = 5/9.0*(華氏度-32) 保留3位小數)
var h = 80;
var c = 5 / 9.0 * (h-32);
c = parseInt(c*1000) / 1000;
console.log(c); // 26.666

3. 705、816用js代碼計算兩個數字的個位、十位、百位相加的和
var num1 = 705;
var num2 = 816;
var g1 = num1 % 10;
var g2 = num2 % 10;
var b1 = parseInt(num1 / 100);
var b2 = parseInt(num2 / 100);
var s1 = parseInt(num1 / 10) % 10;
var s2 = parseInt(num2 / 10) % 10;
console.log(g1+g2+b1+b2+s1+s2); // 27

二、邏輯分支、基礎陳述句等
1.輸入一個月份回傳這個月有多少天
var month = prompt('請輸入一個月份');
month = Number(month);
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log(31);
break;
case 2:
console.log(28);
break;
case 4:
case 6:
case 9:
case 11:
console.log(30);
break;
default:
console.log('你輸入的月份有誤!');
}


2.輸入一個年份/月份/日期回傳這個日期是這一年的第幾天
var month = prompt('輸入一個月份') - 0;
var day = prompt('輸入一個日期') - 0;
//記錄總天數
var sum = 0;
switch (month) {
//以此類推...
case 4:
sum += 31;
case 3:
sum += 31;
case 2:
sum += 31;
case 1:
sum += day;
console.log(sum);
3.能被4整除不能被100整除,或者能被400整除
var year = prompt('輸入一個年份');
if (year % 4 === 0 && year % 100 !== 0 || year % 400 == 0) {
console.log(year + '年是閏年');
} else{
console.log('不是閏年');
}




4.一個加油站為了鼓勵車主多加油,所以加多有優惠,
92號汽油,每升6元;如果大于等于20升,那么每升5.9元;
97號汽油,每升7元;如果大于等于30升,那么每升6.59元;
var bh = prompt('請輸入汽油編號');
var l = prompt('請輸入加多少升油');
switch (bh) {
case "92":
if (l < 20) {
total = 6 * l;
} else if (l >= 20) {
total = l * 5.9;
}
break;
case "97":
if (l < 30) {
total = 7 * l;
} else if (l >= 30) {
total = l * 6.95;
}
break;
default:
alert('編號錯誤');
}
alert(total);



如果輸入編號錯誤:


5.回傳一個隨機整數[1-100]
var num = 10 + Math.floor(Math.random() * (100 - 10 + 1));
console.log(num);
隨機生成:

6.把字串’20150628’轉化為’2015年6月28日’
var str = '20150628';
var day = str % 100;
var year = Math.floor(str / 10000);
var month = Math.floor(str / 100) % 100;
console.log(year + '年' + month + '月' + day + '日');

7.設計一個猜拳游戲(1代表石頭,2代表剪刀,3代表布),計算每次隨機出現1-3任意一個數(parseInt(Math.random()*3)+1),玩家也有三種狀態,用玩家出的數和計算出的數進行對比,按照游戲規則比出勝負
//生成一個1-3的亂數
var _random = 1 + Math.floor(Math.random() * 3);
//用戶輸入1-3的數字
var cunstomNum = prompt('輸入1-3整數');
//進行比較
var result = null;
switch (cunstomNum) {
case '1':
switch (_random) {
case 1:
result = "平局";
break;
case 2:
result = "用戶勝利";
break;
case 3:
result = "電腦勝利";
break;
case '2':
switch (_random) {
case 1:
result = "用戶勝利";
break;
case 2:
result = "平局";
break;
case 3:
result = "電腦勝利";
break;
case '3':
switch (_random) {
case 1:
result = "電腦勝利";
break;
case 2:
result = "用戶勝利";
break;
case 1:
result = "平局";
break;
}
}
alert(result);
8.列印1-100以內的奇數
var num = 1;
while (num < 100) {
if (num % 2 != 0) {
console.log(num);
}
num++;
}

9.1-100中不是5的倍數
var num = 0;
while (num <= 100) {
num++;
if (num % 5 == 0) {
continue;
}
console.log(num);
}

三、回圈陳述句
1. 1+2+3+…+99的和
var sum = 0;
var i = 1;
while (i <= 100) {
sum += i;
i++;
}
console.log(sum); //5050

2.1-100以內的偶數和
var sum = 0;
for (var i = 1; i < 101; i++) {
if (i % 2 == 0) {
sum += i;
}
}
console.log(sum);

3.100-999之間的水仙花數
//水仙花數是個/十/百位的數字相加等于本身(例如:153=1*1*1+5*5*5+3*3*3)
for (var i = 100; i < 1000; i++) {
var g = i % 10;
var s = Math.floor(i / 10) % 10;
var b = Math.floor(i / 100);
if (i == Math.pow(g, 3) + Math.pow(s, 3) + Math.pow(b, 3)) {
console.log(i); //153、370、371、407
}
}

4.求10!
// 階乘 10*9*...*1
var j = 1;
for(var i = 10;i>0;i--){
j*=i;
}
console.log(j); //3628800

5.求10! + 9! +…+1!
var j = 1;
var sum = 0;
for (var i = 1; i < 11; i++) {
j *= i;
sum += j;
}
console.log(sum); //4037913

6.列印直角三角形
//*
//* *
//* * *
//* * * *
for (var j = 0; j < 4; j++) {
for (var i = 0; i <= j; i++) {
document.write('* ');
}
document.write('</br>');
}

7.入職薪水10k,每年漲幅5%,50年后工資多少
//Math.pow(1.05,50)*10000;
var money = 10000;
for (var i = 0; i < 50; i++) {
money *= 1.05;
}
console.log(money);

8.列印圖形
//*
//* *
//* * *
//* * * *
//* * * *
//* * *
//* *
//*
for (var i = 1; i < 6; i++) {
for (var j = 0; j < i; j++) {
document.write('* ');
}
document.write('<br/>');
}
for (var i = 1; i < 6; i++) {
for (var j = 0; j < 6 - i; j++) {
document.write('* ');
}
document.write('<br/>');
}

9.列印九九乘法表
for (var i = 1; i < 10; i++) {
for (var j = 1; j <= i; j++) {
var sum = i * j;
if (sum < 10) {
sum = ' ' + sum;
}
document.write(i + '*' + j + '=' + sum + ' ');
}
document.write('<br/>');
}

10.輸出100-200之間所有的質數
for (var j = 100; j <= 200; j++) {
for (var i = 2; i < j; i++) {
var flag = true;
if (j % i == 0) {
flag = false;
break;
}
}
if (flag) {
console.log(j);
}
}

四、函式
1.函式實作獲取任意區間的隨機整數
function getRandom(max, min) {
//設定默認值
min = min || 0;
//保證max為最大值,min為最小值
if (max < min) {
var _max = max;
max = min;
min = _max;
}
var _random = min + Math.floor(Math.random() * (max - min + 1));
return _random;
}
console.log(getRandom(1, 30));

2.籃球從5米的地方掉下來,每次彈起的高度是原來的30%,經過幾次彈起高度不足0.1米
var i = 0;
for (var h = 5; h > 0.1; i++) {
h *= 0.3;
}
console.log(i);

3.有一個64個方格的棋盤,在第一個方格里面放1粒芝麻的重量是0.00001kg,第二個里面放2粒,第三個里面放4,計算 棋盤上放的所有芝麻的重量
var sum = 0;
for(var i = 0; i < 64; i++) {
sum += Math.pow(2, i) ;
}
sum *= 0.00001;
console.log(sum);

4.七必過, 列印1-100中,不包含7,且不是七的倍數的數字
function passSeven() {
for (var i = 1; i < 100; i++) {
if (i % 7 != 0 && i % 10 != 7 && Math.floor(i / 10) % 10 != 7) {
console.log(i)
}
}
}
passSeven();

5.隨機驗證碼和顏色
//四位/六位驗證碼
function getRandom(max, min) {
min = min || 0;
return min + Math.floor(Math.random() * (max - min + 1))
}
function getCode(num) {
num = num || 4;
var str = '';
for (var i = 0; i < num; i++) {
str += getRandom(9);
}
console.log(str);
return str;
}
getCode();
getCode(6);
//隨機顏色
function getColor() {
var str = '#';
for (var i = 0; i < 6; i++) {
var num = getRandom(15).toString(16);
str += num;
}
console.log(str);
return str;
}
getColor();

6.函式實作階乘
function getJc(num) {
var sum = 1;
for (var i = 1; i <= num; i++) {
sum *= i;
}
return sum;
}
console.log(getJc(10));

7.撰寫一個引數, 設定一個引數為n, 當n為奇數時,回傳 1 + 1/3 + 1/5 +… + 1/n 的和, 當n為偶數時, 回傳 1 + 1/2 + 1/4 + 1/6 + … + 1/n 的和;
function getSum(n) {
var sum = 1;
var _num;
if (n % 2) {
// 能進來證明是奇數
num = 3;
} else {
num = 2;
}
// _num = n % 2 ? 3 : 2;
for (var i = _num; i <= n; i += 2) {
sum += 1 / i;
}
}
8.撰寫一個函式, 每次執行,回傳數字最大的一個
function getMax() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
}
return max;
}
var max = getMax(1, 4, 5, 6, 2, 3, 6, 73, 2);
9.遞回實作階乘
function jiecheng(num) {
if (num == 1) {
return 1;
}
return jiecheng(num - 1) * num;
}
console.log(jiecheng(5));

10. 遞回實作斐波拉契
function fn(num) {
if (num == 1 || num == 2) {
return 1;
}
return fn(num - 2) + fn(num - 1);
}
console.log(fn(5));

總結
上面是總結的一些常見的邏輯基礎練習題供參考學習,有問題可互相交流學習,喜歡支持的可以關注哦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279899.html
標籤:其他
上一篇:第七周課程總結
下一篇:動態規劃基礎入門模板總結
