1、 计算当前日期的是星期几的功能注:设定1900年1月1日为周一
我们来拆分一下题目,明确题意。
(1)、 计算当前日期
(2)、星期几
(3)、1900年1月1日为周一
根据这三个条件,我们可以看出要求的分别为那一年、那一月、那一日。得到如下代码:
想要计算一年有多少天,首先要判断的为这一年为闰年还是平年,因为闰年的二月比平年的二月多一天。闰年可以被4整除,并且不能被100整除,或者可以被四百整除。由此可以得到如下代码:
然后我们计算当前日期为这一年的第多少天。
再计算从1900年开始,到现在一个有多少天
最后,判断今天为星期几
让我们来看一下完整代码:
<script type="text/javascript">
function act(){
var year = Number(prompt("请输入年份:"));
var month = Number(prompt("请输入月份:"));
var days = Number(prompt("请输入日期:"));
var isRun = (year%4==0 && year%100!=0)||year%400 ==0; //判断是否为闰年
var totals=0;
var i = 1; //循环变量
while(i<month){ //循环变量的条件 计算前面一共有多少天
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
totals +=31;
break;
case 2: //根据年份判断二月有多少天
if(isRun){
totals +=29;
}else{
totals +=28;
}
break;
case 4:
case 6:
case 9:
case 11:
totals += 30;
break;
}
i++; //循环变量的变化
}
totals += days; //将之前月份的天数和当前天数相加
console.log('今天是'+ year+"年的第"+ totals +"天");
for(var j = 1900;j<year;j++){ //计算从1900开始到现在一共多少天
if((j%4==0 && j%100!=0)||j%400==0){ //判断是否为闰年
totals +=366;
}else{
totals +=365;
}
}
console.log('从1900年到现在一共'+totals+"天");
var week = totals % 7; //判断今天为星期几
var msg = "星期";
switch (week) {
case 0:
msg +="日";
break;
case 1:
msg +="一";
break;
case 2:
msg +="二";
break;
case 3:
msg +="三";
break;
case 4:
msg +="四";
break;
case 5:
msg +="五";
break;
case 6:
msg +="六";
break;
}
console.log('今天'+msg);
}
act();
</script>
运行效果:
2判断101-200之间有多少个素数,并输出所有素数。
素数是什么?是只有1和它本身才整除的数,由此我们可以写出如下代码
效果图如下:
3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
分析题目,
(1)、一个三位数
(2)、各位数字立方和等于本身
这题关键在于将个、十、百、三位上的数字拆分,见如下代码
运行效果如下:
4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析题目:
(1)、对n进行分解质因数,应先找到一个最小的质数k
(2)、如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(3)、如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步
(4)、如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
代码如下:
运行效果如下图: