编写函数repeat(char,n) 实现重复char字符串n次
比如repeat(“★”,6) 返回"★★★★★★"
function rev(char,n){
var arr=""
for(var i=0;i<n;i++){
arr=arr.concat(char)
}//效率很低
console.log(arr)
}
//方法二
二分法,我们已经有了★★,出现4个五角星,就把★★翻倍就行了。
所以就是把任何数字都要1、2、4、8、16、32……组成的。二进制的事儿。
二进制,只有0、1两个数字,位权的概念:
110101
1个1 + 0个2 + 1个4 + 0个8 + 1个16 = 21
那么反过来,我们十进制34等于二进制多少呢?32 + 2
1100010
再比如15等于多少? 8+4+2+1
11111
//二分法
function repeat(char,n){
var arr=""
for(var i=0;i<n;i++){
while(true){
if(n%2==1){
arr+=char
}
if(n==1){
break
}
n=parseInt(n/2)
char=char+char
}
}
return arr
}
第2题
在控制台输出图形
*
***
*****
*******
*********
function repeat(char,n){
var arr=""
for(var i=0;i<n;i++){
while(true){
if(n%2==1){
arr+=char
}
if(n==1){
break
}
n=parseInt(n/2)
char=char+char
}
}
return arr
}
var a,b,str
for(var i=1;i<6;i++){
a= repeat("*",i*2-1)
b=repeat(" ",5-i)
str= b+a
console.log(str)
}
第3题
编写函数rev(char) 实现将字符串char倒置
比如rev(“spring”) 返回"gnirps"
function rev(char){
var arr=char.split("")
arr.reverse()
arr.join()
console.log(arr)
}
function rev(char,n){
var str=</