问题:
100个灯泡排成一排,第一轮所有灯泡打开;第二轮每隔一个灯泡关掉一个,第三轮每个两个开的灯泡关掉,关掉的打开。依次类推,求100轮结束后的结果?
1.对于灯来说,拉动次数奇数亮,偶数灭
2.拉动次数与约数相关
class Test {
public static int factorIsOdd(int a) {
int total=0;
int i;
for(i=1;i<=a;i++) {
if(a%i==0)
total++;
}
if(total%2==1) {
return 1;
}
else {
return 0;
}
}
public static int totalCount(int num[],int n) {
int i;
int count=0;
for(i=0;i<n;i++) {
if(factorIsOdd(num[i])==1) {
System.out.println("亮着的灯的编号是:"+num[i]);
count++;
}
}
return count;
}
public static void main(String[] args) {
int i,count;
int [] num=new int[100];
for(i=0;i<100;i++) {
num[i]=i+1;
}
count=totalCount(num,100);
System.out.println("最后总共有"+count+"盏灯亮着");
}
}