代码改变世界

JS逻辑算法

2019-07-29 08:14  张海峰999  阅读(270)  评论(0编辑  收藏  举报

 

1.在calDate()的基础之上添加 计算当前日期的是星期几的功能
注:设定1900年1月1日为周一

2判断101-200之间有多少个素数,并输出所有素数。

3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

5.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

6.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

7.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

8.计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,5的阶乘为 5*4*3*2*1

function fun1(){
//用户输入年
var year = Number(prompt("请输入年份:"));
//用户输入月份
var month = Number(prompt("请输入月份:"));
//用户输入日期
var day = Number(prompt("请输入日期:"));
var totaldays = 0;
for(var i = 1;i < month; i++){
switch (i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
totaldays += 31;
break;
case 2:
//判断是否是闰年
if(year % 4==0 && year%100 != 0 || year % 400 == 0){
totaldays +=29;
}else{
totaldays +=28;
}
break;
case 4:
case 6:
case 9:
case 11:
totaldays += 30;
break;
}

}
totaldays += day;
console.log(year+"年"+month+"月"+day+"日"+"是"+ year +"年的第"+totaldays+"天");

//计算从1900到year-1有多少天
for(var j=1900; j < year ; j++){
//判断闰年
if(j%4 == 0 && j % 100 != 0 || j % 400== 0){
totaldays +=366;//闰年
}else{
totaldays +=365;//非闰年
}
}
console.log("从1900到"+year+"年"+month+"月"+day+"日"+"共" + totaldays +"天");


//计算这一天是周几
var week = totaldays % 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(year+"年"+month+"月"+day+"日"+msg);
}
// fun1();

 


// //加上当月的天数
// totaldays += day;
// console.log(totaldays);
// var date = new Date(year,month-1,day);
// var list = ["日","一","二","三","四","五","六"];
// console.log("今天是星期"+list[date.getDay()]);

//
//2.101到200之间的素数
function fun2(){
for(var i = 101;i <= 200;i++){
var flag = true; //假设是素数
for(var j =2 ; j < i;j++){
if(i % j == 0){//如果对2取余等于0,它就不是素数
flag = false;
break;
}
}
if(flag){//如果条件成立
//打印素数
console.log(i);
}
}
}
// fun2();
//求因子的个数,如果大于因子的个数啊、大于二,他就是不是素数;
// for(var i = 101; i <200 ; i++){
// var count = 0;
// for(var j = 2; j < i; j++){
// if(i % j == 0){
// count++;
// break;
// }
// }
// if (count == 0) {
// console.log(i);
// }
// }
// }

function fun4(){
//输入一个正整数
var n = Number(prompt("请输入一个正整数:"));
var msg = n +"=";
for(var k = 2; k <= n;k++){
//当输入的n对k取余为0
while(n % k == 0 && n != k){

// console.log(k);
msg += (k+"*");
// 就将n对它的最小公因子除完后,将n质赋给n
n = n/k;
}
if(n == k){
msg +=n;
}

}
console.log(msg);
}
// fun4();

 


//3.水仙花数
function fun3() {
var a , b , c; //a为百位,b为十位,c为个位
for(var i = 100; i < 1000; i++){
a = parseInt(i/100);//百
b = parseInt((i%100)/10);//十
c = parseInt(i%10);//个
if (i == a * a * a + b * b * b + c * c * c ) {
console.log("水鲜花数有:" + i);
}
}
}
// fun3();

 


//5 a+aa+aaa+aaaa+aaa..a
function fun5(){
var a = Number(prompt("请输入一个数:"));//比如 2 +22 +222 .... a 为2

var n = Number(prompt("请输入一个数:")); //n为几位数相加 比如n=4 则是2+22+222+2222
var sum = 0;//
var x = 0;//每一次求得单个数/2/22/222....
for(var i = 1; i<= n ; i++){
x = x*10 + a; // 22=2*10+2
sum +=x ;
}
console.log(sum);
}
// fun5();

//6.猴子吃桃
function fun6(){
var last = 1;//最后一天的桃子
var total = 0;//总数量
for(var i = 9;i>0;i--){
total =(last +1)*2;
last = total;
}
console.log(total);
}
// fun6();

//7.
function fun7(){
var a = 10;//最后一个人多少岁
var e = 0;
for(var i = 1; i <= 4;i++){
e = a + 2;
a = e;
}
console.log(e);
}
// fun7();

//8.阶乘
function fun8(){
//接受用户输入一个数
var input =Number(prompt("请输入一个数:"));
//最开始令result = 1
var result = 1;
for (var i = 1; i <= input; i++){
result = result * i;
}
console.log(input + "阶乘为:" +result);
}
// fun8();
//9.
function fun9(){
//接受用户输入一个数
var n = Number(prompt("输入一个数:"));
var sum = 0;
for (var i = 1; i <= n; i++) {
sum +=1/(2*i-1);//分母为奇数 2*i-1
}
console.log(sum);
}
// fun9();