華為南京研究所機考練習-電灯が点灯している個数
電灯がついている個数
説明:
1本の廊下にはn(1≦n≦65535)個の電灯が順番に取り付けられており、最初から最後まで番号1、2、3、...n-1、nである.各電灯は1つの引張スイッチによって制御される.最初、電灯は全部消していました.n人の学生が廊下を通った.最初の学生は番号が1の倍数の電灯のスイッチを引いた.次に2番目の学生は番号が2の倍数の電灯のスイッチを引いた.次に3番目の学生は番号が3の倍数の電灯のスイッチを引いた.このように続けて、最後にn番目の学生は番号がnの倍数の電灯のスイッチを引いた.n人の学生がこの規定に従って歩いた後、廊下に電灯がいくつか点灯していた.注:電灯の数は学生の数と一致しています.
実行時間の制限:
制限なし
メモリの制限:
制限なし
入力:
電灯の数
出力:
点灯している電灯の数
サンプル入力:
3
サンプル出力:
1
構想分析:
シーンを直接シミュレートすればいいです.最初の問題に比べて、この問題の構想はもっと直接的です.
package com.liuhao;
import java.util.Scanner;
/**
* @author liuhao
*/
public class Test2 {
public static void main(String[] args) {
//
int sum = 0;
//
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
boolean[] booArr = new boolean[n];
// n
for(int stu=1; stu<=booArr.length; stu++){
for(int i=1; i<=booArr.length; i++){
if( i%stu == 0){
booArr[i-1] = !booArr[i-1];
}
}
}
//
for(int i=0; i<booArr.length; i++){
if(booArr[i] == true){
sum++;
}
}
System.out.println(sum);
}
}