1.创造50个div,要求div是正方形,随机大小,随机在页面的任意位置(1400*720),随机颜色
<script>
function getRandomColor() {
var color="#";
for(var i=0;i<3;i++){
var str=parseInt(Math.random()*256);
if(str<16){
str="0"+str.toString(16);
}else {
str=str.toString(16);
}
color+=str;
}
return color;
}
function createDiv(w,h,bg,lefts,tops) {
var style="width:"+w+"px;height:"+h+"px;background-color:"+bg+";position:absolute;top:"+tops+"px;left:"+lefts+"px";
var div="<div style="+style+"></div>";
return div;
}
for(var i=0;i<20;i++) {
var h=Math.random()*200;
var bbb=createDiv(h,h, getRandomColor(),Math.random()*1400,Math.random()*720);
document.write(bbb);
}
</script>
2.修改第一个,初始的时候没有任何div,点击document,创建一个新的div,随机所有
<script>
function getRandomColor() {
var color="#";
for(var i=0;i<3;i++){
var str=parseInt(Math.random()*256);
if(str<16){
str="0"+str.toString(16);
}else {
str=str.toString(16);
}
color+=str;
}
return color;
}
function creatDiv(w,h,bg,l,t){
var style="width:"+w+"px;height:"+h+"px;background-color:"+bg+";position:absolute;left:"+l+"px;top:"+t+"px;";
var div="<div style="+style+"></div>"
randomDiv+=div;
document.documentElement.innerHTML= randomDiv;
}
var randomDiv="";
document.addEventListener("click",clickHandler);
function clickHandler(e) {
var h=Math.random() * 200;
creatDiv(h, h, getRandomColor(), Math.random() * 1400, Math.random() * 500);
}
</script>
3.利用递归求100的阶乘
<script>
/*
使用递归 求n的阶乘
假设 写好了一个函数 fn
1:1
2:1*2 ->fn(1)*2
3:1*2*3 ->fn(2)*3
4:1*2*3*4 ->fn(3)*4
...
n:1*2*3...*n ->fn(n-1)*n
*/
function fn1(n) {
// 条件是
if(n==1){
return 1;
}
return fn1(n - 1) * n;
}
var result = fn1(100);
console.log(result);
</script>
4.利用递归求两个数字的最大公约数
<script>
/* 首先确定如何求最大公约数,我们采用欧几里得算法(辗转相除法),算法描述如下:
例:48,57
57%48=9 大数对小数求余
48%9=3 小数对上次的余数求余,重复这个过程直到余数为0
9%3=0 余数为0时,此次求余的小数就是最大公约数*/
//功能:求两个数的最大公约数 //参数:两个数: //返回值:最大公约数
function f(m,n) {
//大数能否整除小数,
if (m > n) {
var max = m;
var min = n;
} else {
var min = m;
var max = n;
}
if (max % min == 0) {
//1、如果能整除,小数就是最大公约数
return min;
} else {
//2、如果不能整除,那就求小数和余数的最大公约数
return f(min, max % min);
}
}
var result = f(48,57);
console.log(result);
</script>
5.编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数求/1+1/3+…+1/n;
<script>
function fnPrint(n){
var sum = 0;
if(n%2==0){
i = 2;
}
else{
i = 1
}
while(i <= n){
sum+= 1/i;
i = i+2;
}
return sum;
}
var s = fnPrint(2)
alert(s);
</script>