□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 件のコメント:
コメントを投稿