1. 題目:
計算當前日期的是星期幾的功能
注:設定1900年1月1日為周一
解析:
已知:一周有七天,1900年1月1日 周一 今天的年份 月份 日期 總天數%7 余數 0周日 1周一 2周二 3周三 4周四 5周五 6周六 總天數%7 余數 0周日 1周一 2周二 3周三 4周四 5周五 6周六
代碼:
<body>
<button onclick="calDate()">日期計算器</button>
<script>
function calDate(){
//接收輸入的年 月 日
var year= Number(prompt("請輸入年份:"));
var month= Number(prompt("請輸入月份:"));
var days = Number(prompt("請輸入日期:"));
var i=1;//循環變量
var totals=0;//
var isRun=(year%4==0 && year%100 !=100) || year%400 ==0;
while(i<month){ //5 1< 5? 執行 輸入的日期是這一年的多少天 ----- 當前年份的總天數
//累加天數
switch(i){ //1
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+"天");
//累計計算,從1900到year-1年 共多少天
for(var y=1900;y<year;y++){ //1902 3 2
//y表示從1900年開始的每一年
if(isRun){
totals += 366;
}else{
totals += 365;
}
}
console.log("從1900.1.1到現在一共"+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(year+"年"+month+"月"+days+"日,是"+msg);
}
</script>
</body>
2.判斷101-200之間有多少個素數,並輸出所有素數。
代碼:
<button onclick="fun1()">求素數</button>
<body>
<script type="text/javascript">
// function num(){
// var num=Number(prompt("請輸入一個數"))
// var coutent=prompt("請輸入幾個數相加")
// var n=0,sum=0;
// for(var i=1;i<=coutent;i++){
// n=n*10+num;
// sum=sum+n;
//
// }
// console.log(sum);
// }
function fun1(){
for(var i=101; i<=200;i++){
var flag=false;
for(var j=2;j<101;j++){
if(i%j==0){
flag=false;
break;
}else{
flag=true;
}
}
if(flag){
console .log("素數"+i)
}
// if(flag){
// console .log("素數"+i)
// }
}
</script>
</body>
3.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。
代碼:
<body>
<script type="text/javascript">
function num(){
var num=Number(prompt("請輸入一個數"))
var coutent=prompt("請輸入幾個數相加")
var n=0,sum=0;
for(var i=1;i<=coutent;i++){
n=n*10+num;
sum=sum+n;
}
console.log(sum);
}
4.定義一個函數,打印九九乘法口訣表
代碼:
<body>
<button onclick="num()">開炮</button>
<script type="text/javascript">
function num(){
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
var sum=i*j;
document.write(i+"*"+j+"="+sum+"\t");
}
document.write("<br>")
}
}
</script>
</body>
5.打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。 */
/*for( var shui=100;shui<1000;shui++){//s輸出水仙花這個數,在進行區間判斷 shui=Number(shui);將其數據類型定義為整數 var gei =shui%10;//通過取余來得到其個位數的數字 var s=parseInt((shui/10)%10);//用類型的辦法來得到其十位數的的數 var b=parseInt(shui/100);//得到百位數的數 if(shui==(gei*gei*gei)+(s*s*s)+(b*b*b)){;//根據條件來判斷是否為水仙花數 console.log(shui); } }
6.定義函數,去掉數組中重復的元素
1 function num1(){//定義一個函數 2 var j=[1,2,3,4,5,6,2,1,4,7,911,2,1];//輸出數組的每個元素 3 for(var i=0,result=[];i<=j.length-1;i++){//循環遍歷數組j每個元素;並創建一個空數組result 4 for (var z=0;z<result.length;z++){//循環遍歷數組result的每個元素; 5 if(j[i]==result[z]){//如果數組z和數組j中有相等的元素;則退出當前循環 6 break;// 7 } 8 } 9 if(z==result.length){//如果沒有相同的元素,則將這個元素存儲在result數組中 10 result[result.length]=j[i];// 11 } 12 13 } 14 console.log(result);//最后輸出的數組中沒有重復的元素 15 }
7.猜數游戲(在1-10中隨機選出一個數,如果輸入的數大了就輸出“猜大了”;如果輸出的數小了就輸出猜小了“”)-----循環嵌套語句
1 function guess(){//定義函數 2 var num=parseInt(Math.random()*10);//隨機生成1——10的整數 3 console.log(num); 4 while(true){//直接將條件設置為真 5 var guessnum=prompt("請輸入你要猜的數"); 6 if(guessnum=="exit"){//當猜到exit時,直接退出該循環 7 console.log("歡迎下次再來"); 8 break; 9 }if(guessnum>num){//當循環為真;輸出“猜大了” 10 console.log("猜大了") 11 }else if(guessnum<num){//當循環為真;輸出“猜小了” 12 console.log("猜小了") 13 }else{ 14 console.log("恭喜你,猜對了"); 15 break; 16 } 17 } 18 }
7.用戶輸入年份,月份,日期,計算輸入的這一天是這一年的第幾天---------循環語句
1 function time(){//輸入年 ,月,日 2 var year=Number(prompt("請輸入年份")); 3 var month=Number(prompt("請輸入月份")); 4 var day=Number(prompt("請輸入日期")); 5 var i=1;//循環變量 6 var total=0;//設置累加的天數 7 var isrun=(year%4==0 && year%100!=0) || year%400==0 //判斷這一年是否為閏年 8 while(i<month){//執行,輸入的日期是這一年的多少天----當前年份的總天數 9 //累加天數 10 switch(i){//運用switch(){}語句來確定每月所對應的天數 11 case 1://case的下落 12 case 3: 13 case 5: 14 case 7: 15 case 8: 16 case 10: 17 total+=31; 18 break; 19 case 2: 20 //判斷2月份的天數 21 if(isrun){ 22 total+=29 23 } 24 total+=28; 25 break; 26 case 4: 27 case 6: 28 case 9: 29 case 11: 30 total+=30; 31 break; 32 } 33 i++; 34 } 35 total=total+day;//輸出該月是該年的第幾天 36 37 console.log(total)
8.打印出1-100之間的數-----循環語句
1 function fun(){ 2 //控制台打印1-100之間所有的數字 3 for(var i=1(聲明變量i);i<=100(根據區間來將變量進行判斷);i++(變量的更新;防止進入死循環)){ 4 console.log(i); 5 } 6 console.log(i);// 7 }
8.查找信息
1 <body> 2 <button onclick="num()" >查找信息</button> 3 <script type="text/javascript"> 4 function num() { 5 6 var arr=[10,8,60,70,80,5,12,65,68,90]; 7 prompt("輸入要查找的數:\n"); 8 for(var i=0;i<arr.length;i++){ 9 if(arr[i]==prompt){ 10 console .log("找到信息") 11 }else{ 12 console .log("找不到信息") 13 } 14 } 15 } 16 </script> 17 </body>
9.輸入一個四位數,分別取個個位數,並且互換值
1 <button onclick="num()">第七題</button> 2 <body> 3 <script type="text/javascript"> 4 function num(){ 5 var num=Number(prompt("請輸入一個四位數"))//5678 6 var arr=new Array(4) 7 arr[0]=num/1000; 8 arr[1]=num/100%10; 9 arr[2]=num/10%10; 10 arr[3]=num%10;//8 11 for(var i=1;i<arr.length;i++){ 12 arr[i]=arr[i]+5; 13 arr[i]=arr[i]%10; 14 } 15 arr[0]=arr[3]^arr[0]; 16 arr[3]=arr[3]^arr[0]; 17 arr[0]=arr[3]^arr[0]; 18 19 arr[1]=arr[1]^arr[2]; 20 arr[2]=arr[2]^arr[1]; 21 arr[1]=arr[1]^arr[2]; 22 23 console .log(arr) 24 } 25 </script> 26 </body>
10. 定義一個函數,打印九九乘法口訣表------>循環語句
1 1*1=1 2 1*2=2 2*2=4 3 1*3=3 2*3=6 3*3=9 4 1*4=4 2*4=8 3*4=12 4*4=16 5 ... 6 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 7 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 8 9 var num="" 10 function cheng(){ 11 for(line=1;line<10;line++){//控制行的語句(外層循環) 12 13 for(var i=1;i<=line;i++){//控制每一行的循環 14 var result=line*i; 15 num+=i+"*"+line+"="+i*line; 16 document.write(i+"*"+line+"="+i*line+"\t")//將line的每一行空格 17 } 18 document.write("<br />")//將line的每一行進行換行處理 19 } 20 }
11.求s=a+aa+aaa+aaaa+aa...a的值,其中a(數字)是一個數字。例如2+22+222+2222+22222(此時共有5(疊數)個數相加),幾個數相加有鍵盤控制。
1 //判斷 2 var num=prompt("請輸入一個數");//用戶輸出數字 3 var d=prompt("請輸入他的疊數");//用戶輸出該數字的疊數 4 var n=0,sum=0;//聲明n為加數;sum為累加的和 5 for(var i=0;i<=d;i++){//判斷條件;如果聲明一個變量,他的范圍不超過這個疊數 6 sum+=n*10+num;//累加 7 } 8 console.log(sum);//輸出
12.判斷101-200之間有多少個素數,並輸出所有素數(大於1的自然數,且他的因子只有兩個(他本身和1))。
1 var sushu; 2 for(var sushu=101;sushu<199;sushu++){ 3 4 var sushu;//聲明變量,定義為素數 5 6 var count = 0;//count定義為該數因子的個數 7 for( var j = 1(聲明一個數j) ; j<= sushu(將j作為一個小於素數自然數) ; j++(更新) ){ 8 if( sushu%j == 0 ){//判斷在這個數是否有因子 9 //因子 10 count++; //有一個因子,因子數就加一 11 } 12 } 13 //循環結束后 如果 count == 2 一定是素數;因為素數只有一個因子 14 if( count == 2 ){ 15 console.log(sushu) 16 } 17 } 18 19 console.log(sushu);
13.1~100奇數和
1 var sum=0; 2 for(var i=1,sun=0;i<=100;i+=2){循環輸出1-100的奇數;並聲明累加sum的初始值 3 sum+=i;累加 4 } 5 document.write(sum+"<br />");
14.1~100偶數和
1 var sum=0; 2 for(var i=2,sun=0;i<=100;i+=2){循環輸出所有偶數;並聲明累加sum的初始值 3 sum+=i; 4 } 5 document.write(sum);
15.
1 var sum=0; 2 for(var i=2,sun=0;i<=100;i+=2){循環輸出所有偶數;並聲明累加sum的初始值 3 sum+=i; 4 } 5 document.write(sum);
16.輸入一個數字,然后判斷是否為正整數,如果不是,提示重新輸入;如果是,將該數字左右反轉,然后輸出(列如:12345,翻轉之后為54321)
1 var sum=1; 2 3 for(var i=1;i<=2;){循環遍歷 4 5 var num =prompt("請輸入一個數字"); 6 7 if(Number(num)>0&&parseint(num)==parsefloat(num)){判斷是否只一個整數 8 9 break; 10 11 } 12 13 } 14 15 /*num=12345 16 17 5 num%10; 18 19 4 num/10%10; 20 21 3 num/100%10; 22 23 ........ 24 25 */ 26 27 doucument.write(“您輸入的數字為:“+num+”<br />”); 28 29 for(var j=0;;j++){ 30 31 sum*=10; 32 33 var fz=parseInt(num%sum/(sum/10)); 34 35 document.write(fz); 36 37 if(num-sum<=0){ 38 39 break; 40 41 } 42 43 }
17.求100以內數字之和
1 var sum = 0; 2 3 4 for(var i=0;i<100;i++) 5 { 6 sum +=i; 7 } 8 alert(sum);
18.在頁面中接收一個用戶輸入的數字,並判斷該數是否是質數。
1 <script type="text/javascript"> 2 var num = prompt("請輸入一個大於1的整數:"); 3 if(num <= 1 || isNaN(num)){ 4 alert('該值不合法!'); 5 }else{ 6 var flag = true; 7 for(var i=2; i<num; i++){ 8 if(num % i ==0){ 9 flag = false; 10 } 11 } 12 if(flag){ 13 alert(num + "是質數!"); 14 }else{ 15 alert(num + "不是質數!"); 16 } 17 } 18 </script>
19.取100以內與7相關的數
1 var s = ""; 2 3 4 for(var i=0;i<100;i++) 5 { 6 if(i%7==0 || i%10==7 ||parseInt(i/10)==7) 7 { 8 s = s+i+"|"; 9 } 10 } 11 alert(s);
20.數組從大到小排序
1 var arr = [1,5,56,6,1,1,21,45,4] 2 var max; 3 for(var i = 0; i < arr.length; i++){ 4 for(var j = i; j < arr.length; j++){ 5 if(arr[i] < arr[j]){ 6 max= arr[j]; 7 arr[j] = arr[i]; 8 arr[i] = max; 9 } 10 } 11 } 12 console.log(arr) // [56, 45, 21, 6, 5, 4, 1, 1, 1]
