灯泡编程题-java
现在有100个灯泡,每个灯泡都是关着的,灯泡排序为1~100,接着将2的倍数的灯泡开关按一下,然后将3的倍数的灯泡开关按一下……直到将N的倍数的灯泡开关按一下,最后统计灯泡亮着的数目。
算法思路:
1.将灯泡数存入数组
2.数组都默认值为0
3.将N的倍数的灯泡从2~N改变一下数值,若灯泡本身为0,则赋值1,否则赋值为0
class Light{ public static void main(String[] args){ int[] nums = new int[100]; int index = 0; int N = 2; for (int i=0;i<100;i++){ nums[i] = 0; } for (int i=2;i<=N;i++){ for (int j=1;j<100;j++){ index = j+1; if ( index>=i&&index%i==0){ if (nums[j]==0){nums[j]=1;} else {nums[i]=0;} } } } int count = 0; for (int i=0;i<100;i++){ if (nums[i]==1){count++;} } System.out.println("result="+count); } }