一、js的基本类型
1.为抵抗洪水,战士连续作战89个小时,编辑计算共多少天零多少小时?
vardays=parseInt(89/24);varhours=89%24;console.log(days+'天'+hours+'个小时');// 3天17小时
2.小明要到美国旅游,可是那里的温度是以华氏度为单位记录的,他需要一个程序将华氏度温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。(提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32) 保留3位小数)
varh=80;varc=5/9.0*(h-32);c=parseInt(c*1000)/1000;console.log(c);// 26.666
3.705、816用js代码计算两个数字的个位、十位、百位相加的和
varnum1=705;varnum2=816;varg1=num1%10;varg2=num2%10;varb1=parseInt(num1/100);varb2=parseInt(num2/100);vars1=parseInt(num1/10)%10;vars2=parseInt(num2/10)%10;console.log(g1+g2+b1+b2+s1+s2);// 27
二、逻辑分支、基础语句等
1.输入一个月份返回这个月有多少天
varmonth=prompt('请输入一个月份');month=Number(month);switch(month){case1:case3:case5:case7:case8:case10:case12:console.log(31);break;case2:console.log(28);break;case4:case6:case9:case11:console.log(30);break;default:console.log('你输入的月份有误!');}
2.输入一个年份/月份/日期返回这个日期是这一年的第几天
varmonth=prompt('输入一个月份')-0;varday=prompt('输入一个日期')-0;//记录总天数varsum=0;switch(month){//以此类推...case4:sum+=31;case3:sum+=31;case2:sum+=31;case1:sum+=day;console.log(sum);
3.能被4整除不能被100整除,或者能被400整除
varyear=prompt('输入一个年份');if(year%4===0&&year%100!==0||year%400==0){console.log(year+'年是闰年');}
4.一个加油站为了鼓励车主多加油,所以加多有优惠。
92号汽油,每升6元;如果大于等于20升,那么每升5.9元;
97号汽油,每升7元;如果大于等于30升,那么每升6.59元;
varbh=prompt('请输入汽油编号');varl=prompt('请输入加多少升油');switch(bh){case"92":if(l<20){total=6*l;}elseif(l>=20){total=l*5.9;}break;case"97":if(l<30){total=7*l;}elseif(l>=30){total=l*6.95;}break;default:alert('编号错误');}alert(total);
5.返回一个随机整数[1-100]
varnum=10+Math.floor(Math.random()*(100-10+1));console.log(num);
6.把字符串'20150628'转化为'2015年6月28日'
varstr='20150628';varday=str%100;varyear=Math.floor(str/10000);varmonth=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的数字varcunstomNum=prompt('输入1-3整数');//进行比较varresult=null;switch(cunstomNum){case'1':switch(_random){case1:result="平局";break;case2:result="用户胜利";break;case3:result="电脑胜利";break;case'2':switch(_random){case1:result="用户胜利";break;case2:result="平局";break;case3:result="电脑胜利";break;case'3':switch(_random){case1:result="电脑胜利";break;case2:result="用户胜利";break;case1:result="平局";break;}}alert(result);
8.打印1-100以内的奇数
varnum=1;while(num<100){if(num%2!=0){console.log(num);}num++;}
9.1-100中不是5的倍数
varnum=0;while(num<=100){num++;if(num%5==0){continue;}console.log(num);}
三、循环语句
1.1+2+3+...+99的和
varsum=0;vari=1;while(i<=100){sum+=i;i++;}console.log(sum);//5050
2.1-100以内的偶数和
varsum=0;for(vari=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(vari=100;i<1000;i++){varg=i%10;vars=Math.floor(i/10)%10;varb=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*...*1varj=1;for(vari=10;i>0;i--){j*=i;}console.log(j);//3628800
5.求10! + 9! +...+1!
varj=1;varsum=0;for(vari=1;i<11;i++){j*=i;sum+=j;}console.log(sum);//4037913
6.打印直角三角形
//*//* *//* * *//* * * *for(varj=0;j<4;j++){for(vari=0;i<=j;i++){document.write('* ');}document.write('</br>');}
7.入职薪水10k,每年涨幅5%,50年后工资多少
//Math.pow(1.05,50)*10000;varmoney=10000;for(vari=0;i<50;i++){money*=1.05;}console.log(money);
8.打印图形
//*//* *//* * *//* * * *//* * * *//* * *//* * //* for(vari=1;i<6;i++){for(varj=0;j<i;j++){document.write('* ');}document.write('<br/>');}for(vari=1;i<6;i++){for(varj=0;j<6-i;j++){document.write('* ');}document.write('<br/>');}
9.打印九九乘法表
for(vari=1;i<10;i++){for(varj=1;j<=i;j++){varsum=i*j;if(sum<10){sum=' '+sum;}document.write(i+'*'+j+'='+sum+' ');}document.write('<br/>');}
10.输出100-200之间所有的质数
for(varj=100;j<=200;j++){for(vari=2;i<j;i++){varflag=true;if(j%i==0){flag=false;break;}}if(flag){console.log(j);}}
四、函数
1.函数实现获取任意区间的随机整数
functiongetRandom(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米
vari=0;for(varh=5;h>0.1;i++){h*=0.3;}console.log(i);
3.有一个64个方格的棋盘,在第一个方格里面放1粒芝麻的重量是0.00001kg,第二个里面放2粒,第三个里面放4,计算 棋盘上放的所有芝麻的重量
varsum=0;for(vari=0;i<64;i++){sum+=Math.pow(2,i);}sum*=0.00001;
4.七必过, 打印1-100中,不包含7,且不是七的倍数的数字
functionpassSeven(){for(vari=1;i<100;i++){if(i%7!=0&&i%10!=7&&Math.floor(i/10)%10!=7){console.log(i)}}}passSeven();
5.随机验证码和颜色
//四位/六位验证码functiongetRandom(max,min){min=min||0;returnmin+Math.floor(Math.random()*(max-min+1))}functiongetCode(num){num=num||4;varstr='';for(vari=0;i<num;i++){str+=getRandom(9);}console.log(str);returnstr;}getCode();getCode(6);//随机颜色functiongetColor(){varstr='#';for(vari=0;i<6;i++){varnum=getRandom(15).toString(16);str+=num;}console.log(str);returnstr;}getColor();
6.函数实现阶乘
functiongetJc(num){varsum=1;for(vari=1;i<=num;i++){sum*=i;}returnsum;}console.log(getJc(10));
7.编写一个参数, 设置一个参数为n, 当n为奇数时,返回 1 + 1/3 + 1/5 +..... + 1/n 的和, 当n为偶数时, 返回 1 + 1/2 + 1/4 + 1/6 + ..... + 1/n 的和;
functiongetSum(n){varsum=1;var_num;if(n%2){// 能进来证明是奇数num=3;}else{num=2;}// _num = n % 2 ? 3 : 2;for(vari=_num;i<=n;i+=2){sum+=1/i;}}
编写一个函数, 每次执行,返回数字最大的一个
functiongetMax(){varmax=arguments[0];for(vari=1;i<arguments.length;i++){if(max<arguments[i]){max=arguments[i];}}returnmax;}varmax=getMax(1,4,5,6,2,3,6,73,2);
9.递归实现阶乘
functionjiecheng(num){if(num==1){return1;}returnjiecheng(num-1)*num;}console.log(jiecheng(5));
10.递归实现斐波拉契
functionfn(num){if(num==1||num==2){return1;}returnfn(num-2)+fn(num-1);}console.log(fn(5));
网友评论