□Problem
ある刑務所には部屋がn個(1,2,3,…,n)ある.
ある夜,退屈していた看守は,ゲームを始めた.
1.各部屋(1,2,3,…)の鍵を開けていく.
2.1つ飛ばしに各部屋(2,4,6,…)の鍵を閉めていく.
3.2つ飛ばしに各部屋(3,6,9,…)の鍵を開けていく.
…
n.n-1つ飛ばしに各部屋(nのみ)の鍵を開けていく.
最終的に,鍵が空いている部屋はいくつあるか.
□Solution
やるだけ.
□Code
package p1218;
import java.util.*;
import java.lang.*;
import java.math.*;
public class Main{
Scanner sc=new Scanner(System.in);
void run(){
for(int t=sc.nextInt();t>0;t--){
int n=sc.nextInt();
int[] a=new int[n];
// 0-lock
// 1-unlock
for(int k=1;k<=n;k++)
for(int i=k-1;i<n;i+=k)
a[i]=1-a[i];
int ans=0;
for(int e:a)
ans+=e;
println(""+ans);
}
}
void println(String s){
System.out.println(s);
}
void print(String s){
System.out.print(s);
}
public static void main(String[] args){
new Main().run();
}
}
0 件のコメント:
コメントを投稿