语言经典100例
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1 "use strict"; 2 /* 3 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 4 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 5 6 */ 7 let i,j,k; 8 console.log("\n"); 9 for(i=1;i<5;i++) { // 以下为三重循环 10 for(j=1;j<5;j++) { 11 for (k=1;k<5;k++) { // 确保i、j、k三位互不相同 12 if (i!=k&&i!=j&&j!=k) { 13 //console.log(""+i+j+k); 14 //console.log(i*100+j*10+k); 15 console.log((i*100+j*10+k).toString()); 16 } 17 } 18 } 19 }
输入年,月,打印对应年月的日历
1 "use strict"; 2 //问题:输入年,月,打印对应年月的日历 3 4 5 /* 6 问题分析: 7 8 1,首先1970年是Unix系统诞生的时间,1970年成为Unix的元年,1970年1月1号是星期四,现在大多的手机的日历功能只能显示到1970年1月1日这一天; 9 10 2,要想打印某年某月的日历,首先应该计算出这个月1号是星期几? 11 12 解决1号是星期几? 13 14 2.1: 先计算出年天数,即截至这一年1月1号的天数,用for循环,从1970年开始,闰年+366,平年+365; 15 16 2.2: 计算出月天数,即截至本月1号的天数,用for循环,从1月份开始,算出月天数; 17 18 2.1.1 :用到闰年判断,用switch来判断返回月天数; 19 20 2.3: 用年天数加月天数,求得本月1号距离1970年1月1号的总天数,用总天数来判断本月1号是星期几; 21 22 3, 判断本月的总天数(用到switch语句); 23 24 4, 打印日历; 25 */ 26 27 28 29 30 //今天的目标,输入一个年份,判断是闰年还是平年 闰年366天 平年是365天 / % 31 /* 32 1、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年) 33 34 2、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年) 35 36 3、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。 37 */ 38 //var year=1900; 39 var mdays=0; 40 var printString="" 41 var year=window.prompt("请输入年份"); 42 if(isNaN(year)){ 43 console.log("您输入的不是数字,程序中断!"); 44 } 45 // if(year%4==0 && year%100!=0 || year%400==0){ 46 // console.log(year+"是闰年"); 47 // console.log("有366天"); 48 // console.log("二月份有29天"); 49 50 51 // } 52 // else{ 53 // console.log(year+"是平年"); 54 // console.log("有365天"); 55 // console.log("二月份有28天"); 56 // } 57 58 var month=window.prompt("请输入月份"); 59 if(isNaN(month)){ 60 console.log("您输入的不是数字,程序中断!"); 61 62 }else{ 63 if (month>12 || month<1){ 64 console.log("您输入的月份超出范围,程序中断!"); 65 } 66 else{ 67 //console.log("111111111"); 68 69 // month=parseInt(month) 70 // switch (month){ 71 // case 1: 72 // case 3: 73 // case 5: 74 // case 7: 75 // case 8: 76 // case 10: 77 // case 12:{ 78 // console.log(month+"月份有31天"); 79 // mdays=31; 80 // } 81 82 // break; 83 // case 4: 84 // case 6: 85 // case 9: 86 // case 11: 87 // { 88 // console.log(month+"月份有30天"); 89 // mdays=30; 90 // } 91 92 // break; 93 // case 2:{ 94 // if(year%4==0 && year%100!=0 || year%400==0){ 95 // // console.log(year+"是闰年"); 96 // // console.log("有366天"); 97 // // console.log("二月份有29天"); 98 // mdays=29; 99 100 101 // } 102 // else{ 103 // // console.log(year+"是平年"); 104 // // console.log("有365天"); 105 // // console.log("二月份有28天"); 106 // mdays=28; 107 // } 108 // } 109 // break; 110 // default: 111 // console.log("您输入的月份超出范围,程序中断!"); 112 113 // } 114 //console.log("++++++++++++++++"+mdays+typeof(mdays)); 115 116 //用年天数加月天数,求得本月1号距离1970年1月1号的总天数,用总天数来判断本月1号是星期几; 117 var sumdays=0; 118 for(let to_years=1970;to_years<year;to_years++){ 119 if(year%4==0 && year%100!=0 || year%400==0){ 120 // console.log(year+"是闰年"); 121 // console.log("有366天"); 122 // console.log("二月份有29天"); 123 //mdays=29; 124 sumdays+=366; 125 126 127 } 128 else{ 129 // console.log(year+"是平年"); 130 // console.log("有365天"); 131 // console.log("二月份有28天"); 132 //mdays=28; 133 sumdays+=365; 134 } 135 } 136 //本年这个月之前的天数统计 137 //用算组语句,算出本月多少天 ----- 用数组的知识点来判断算出当月有多少天 138 var now_year_month=new Array(); 139 let month31=[1,3,5,7,8,10,12]; 140 let month30=[4,6,9,11]; 141 for(let m=1;m<month;m++){ 142 if(month31.includes(m)){ 143 sumdays+=31; 144 } 145 else if(month30.includes(m)){ 146 sumdays+=30; 147 }else{ 148 // 1、判断本年是否为闰年 如果为闰年,二月份应该是29天,否则平年 二月份28天 149 if(year%4==0 && year%100!=0 || year%400==0){ 150 // console.log(year+"是闰年"); 151 // console.log("有366天"); 152 // console.log("二月份有29天"); 153 //mdays=29; 154 sumdays+=29; 155 156 157 } 158 else{ 159 // console.log(year+"是平年"); 160 // console.log("有365天"); 161 // console.log("二月份有28天"); 162 //mdays=28; 163 sumdays+=28; 164 } 165 } 166 167 } 168 console.log("现在拿到的天数是:本月1号距离1970年1月1号的总天数"+sumdays); 169 console.log("本月1号是星期几---》》:"+(sumdays%7)); 170 console.log("差两天才是正确的,调整一下:"+((sumdays+2)%7)); 171 172 173 174 //用switch语句,算出本月多少天 175 month=parseInt(month)//数值的转换 知识点 176 switch (month){ 177 case 1: 178 case 3: 179 case 5: 180 case 7: 181 case 8: 182 case 10: 183 case 12:{ 184 console.log(month+"月份有31天"); 185 mdays=31; 186 } 187 188 break; 189 case 4: 190 case 6: 191 case 9: 192 case 11: 193 { 194 console.log(month+"月份有30天"); 195 mdays=30; 196 } 197 198 break; 199 case 2:{ 200 if(year%4==0 && year%100!=0 || year%400==0){ 201 // console.log(year+"是闰年"); 202 // console.log("有366天"); 203 // console.log("二月份有29天"); 204 mdays=29; 205 } 206 else{ 207 // console.log(year+"是平年"); 208 // console.log("有365天"); 209 // console.log("二月份有28天"); 210 mdays=28; 211 } 212 } 213 break; 214 default: 215 console.log("您输入的月份超出范围,程序中断!"); 216 } 217 218 219 220 var remain_days=(sumdays+1)%7; //计算出上个月的最后一天星期几 221 for(let a=0;a<remain_days;a++){ 222 printString+=""+"\t"; 223 } 224 225 // mdays+=remain_days; 226 for(var i = 1;i <= mdays; i++){ 227 //console.info("---"+i%7); 228 let huanh=remain_days+i; 229 if(huanh%7==0){ 230 printString+=i+"\n"; 231 232 }else{ 233 234 printString+=i+"\t"; 235 continue; 236 237 } 238 var cishu=0; 239 console.log("测试走了多少次:"+(cishu++)); 240 huanh=i; 241 } 242 console.log(year+"年"+month+"月") 243 console.log("一\t二\t三\t四\t五\t六\t日"); 244 console.log(printString); 245 246 247 } 248 }
1 "use strict"; 2 //问题:输入年,月,打印对应年月的日历 3 4 5 /* 6 问题分析: 7 8 1,首先1970年是Unix系统诞生的时间,1970年成为Unix的元年,1970年1月1号是星期四,现在大多的手机的日历功能只能显示到1970年1月1日这一天; 9 10 2,要想打印某年某月的日历,首先应该计算出这个月1号是星期几? 11 12 解决1号是星期几? 13 14 2.1: 先计算出年天数,即截至这一年1月1号的天数,用for循环,从1970年开始,闰年+366,平年+365; 15 16 2.2: 计算出月天数,即截至本月1号的天数,用for循环,从1月份开始,算出月天数; 17 18 2.1.1 :用到闰年判断,用switch来判断返回月天数; 19 20 2.3: 用年天数加月天数,求得本月1号距离1970年1月1号的总天数,用总天数来判断本月1号是星期几; 21 22 3, 判断本月的总天数(用到switch语句); 23 24 4, 打印日历; 25 */ 26 27 28 29 30 //今天的目标,输入一个年份,判断是闰年还是平年 闰年366天 平年是365天 / % 31 /* 32 1、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年) 33 34 2、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年) 35 36 3、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。 37 */ 38 //var year=1900; 39 var mdays=0; 40 var printString="" 41 var year=window.prompt("请输入年份"); 42 if(isNaN(year)){ 43 console.log("您输入的不是数字,程序中断!"); 44 } 45 // if(year%4==0 && year%100!=0 || year%400==0){ 46 // console.log(year+"是闰年"); 47 // console.log("有366天"); 48 // console.log("二月份有29天"); 49 50 51 // } 52 // else{ 53 // console.log(year+"是平年"); 54 // console.log("有365天"); 55 // console.log("二月份有28天"); 56 // } 57 58 var month=window.prompt("请输入月份"); 59 if(isNaN(month)){ 60 console.log("您输入的不是数字,程序中断!"); 61 62 }else{ 63 if (month>12 || month<1){ 64 console.log("您输入的月份超出范围,程序中断!"); 65 } 66 else{ 67 //console.log("111111111"); 68 69 // month=parseInt(month) 70 // switch (month){ 71 // case 1: 72 // case 3: 73 // case 5: 74 // case 7: 75 // case 8: 76 // case 10: 77 // case 12:{ 78 // console.log(month+"月份有31天"); 79 // mdays=31; 80 // } 81 82 // break; 83 // case 4: 84 // case 6: 85 // case 9: 86 // case 11: 87 // { 88 // console.log(month+"月份有30天"); 89 // mdays=30; 90 // } 91 92 // break; 93 // case 2:{ 94 // if(year%4==0 && year%100!=0 || year%400==0){ 95 // // console.log(year+"是闰年"); 96 // // console.log("有366天"); 97 // // console.log("二月份有29天"); 98 // mdays=29; 99 100 101 // } 102 // else{ 103 // // console.log(year+"是平年"); 104 // // console.log("有365天"); 105 // // console.log("二月份有28天"); 106 // mdays=28; 107 // } 108 // } 109 // break; 110 // default: 111 // console.log("您输入的月份超出范围,程序中断!"); 112 113 // } 114 //console.log("++++++++++++++++"+mdays+typeof(mdays)); 115 116 //用年天数加月天数,求得本月1号距离1970年1月1号的总天数,用总天数来判断本月1号是星期几; 117 var sumdays=0; 118 for(let to_years=1970;to_years<year;to_years++){ 119 if(to_years%4==0 && to_years%100!=0 || to_years%400==0){ 120 // console.log(year+"是闰年"); 121 // console.log("有366天"); 122 // console.log("二月份有29天"); 123 //mdays=29; 124 sumdays+=366; 125 126 127 } 128 else{ 129 // console.log(year+"是平年"); 130 // console.log("有365天"); 131 // console.log("二月份有28天"); 132 //mdays=28; 133 sumdays+=365; 134 } 135 } 136 //本年这个月之前的天数统计 137 //用算组语句,算出本月多少天 ----- 用数组的知识点来判断算出当月有多少天 138 var now_year_month=new Array(); 139 let month31=[1,3,5,7,8,10,12]; 140 let month30=[4,6,9,11]; 141 for(let m=1;m<month;m++){ 142 if(month31.includes(m)){ 143 sumdays+=31; 144 } 145 else if(month30.includes(m)){ 146 sumdays+=30; 147 }else{ 148 // 1、判断本年是否为闰年 如果为闰年,二月份应该是29天,否则平年 二月份28天 149 if(year%4==0 && year%100!=0 || year%400==0){ 150 // console.log(year+"是闰年"); 151 // console.log("有366天"); 152 // console.log("二月份有29天"); 153 //mdays=29; 154 sumdays+=29; 155 156 157 } 158 else{ 159 // console.log(year+"是平年"); 160 // console.log("有365天"); 161 // console.log("二月份有28天"); 162 //mdays=28; 163 sumdays+=28; 164 } 165 } 166 167 } 168 console.log("现在拿到的天数是:本月1号距离1970年1月1号的总天数"+sumdays); 169 console.log("本月1号是星期几---》》:"+(sumdays%7)); 170 console.log("差两天才是正确的,调整一下:"+((sumdays+4)%7)); 171 172 173 174 //用switch语句,算出本月多少天 175 month=parseInt(month)//数值的转换 知识点 176 switch (month){ 177 case 1: 178 case 3: 179 case 5: 180 case 7: 181 case 8: 182 case 10: 183 case 12:{ 184 console.log(month+"月份有31天"); 185 mdays=31; 186 } 187 188 break; 189 case 4: 190 case 6: 191 case 9: 192 case 11: 193 { 194 console.log(month+"月份有30天"); 195 mdays=30; 196 } 197 198 break; 199 case 2:{ 200 if(year%4==0 && year%100!=0 || year%400==0){ 201 // console.log(year+"是闰年"); 202 // console.log("有366天"); 203 // console.log("二月份有29天"); 204 mdays=29; 205 } 206 else{ 207 // console.log(year+"是平年"); 208 // console.log("有365天"); 209 // console.log("二月份有28天"); 210 mdays=28; 211 } 212 } 213 break; 214 default: 215 console.log("您输入的月份超出范围,程序中断!"); 216 } 217 218 219 220 var remain_days=(sumdays+3)%7; //计算出上个月的最后一天星期几 221 for(let a=0;a<remain_days;a++){ 222 printString+=""+"\t"; 223 } 224 225 // mdays+=remain_days; 226 for(var i = 1;i <= mdays; i++){ 227 //console.info("---"+i%7); 228 let huanh=remain_days+i; 229 if(huanh%7==0){ 230 printString+=i+"\n"; 231 continue; 232 233 }else{ 234 235 printString+=i+"\t"; 236 continue; 237 238 } 239 // var cishu=0; 240 // console.log("测试走了多少次:"+(cishu++)); 241 //huanh=i; 242 } 243 console.log(year+"年"+month+"月") 244 console.log("一\t二\t三\t四\t五\t六\t日"); 245 console.log(printString); 246 247 248 } 249 }