关于删除次数的问题写了个函数,有方便一点的吗
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
var cn=content.childNodes;
//从前往后删除
for(var i=0;i<cn.length;i++){
// if(cn[i].nodeType==1)
/*
初始化11个节点,6个空白节点,5个有内容节点
第一次点击删除按钮,删除的是6个空白文本节点,因为删除一个节点过后,节点索引重新排序,节点数目-1
,但删除的索引依旧从0到5,因为到索引为6的时候节点长度为5退出for循环。
同理第二次点击按钮,有5个内容节点,删除3个。
第三次删除1个。第四次删除完毕。
所以每次删除数目为floor((n+1)/2)
*/
content.removeChild(cn[i]);
}
//从后往前删一次性
for(var i=cn.length-1;i>=0;i=--){
content.removeChild(cn[i]);
}
}
计算删除次数的:
import java.util.Scanner;
public class T {
//删除次数
public static int a=0;
public static void countDeleteNumber(int n){
if(n==0){}
else{
n-=(int)Math.floor((n+1)/2);//每次删除数目为节点数加1向下取地板
a+=1;
countDeleteNumber(n);
}
}
public static void main(String []args){
System.out.println("请输入节点数:");
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
T.countDeleteNumber(n);
System.out.println("删除次数为:"+T.a);
}
}