poj1218解题报告

来源:互联网 发布:ubuntu升级16.04后黑屏 编辑:程序博客网 时间:2024/05/17 15:21

//题意不想过多解释,自己看看就知道了

//题不难,这种题我感觉就是在练个人写代码的规范

//我自己的不是很好,但我感觉这样写会看起来比较清晰

#include<iostream>
using namespace std;

int jail[101];   //代表门的状态
int cell;        //有多少个牢房

void init()     //第一遍是全部的门都开着
{
 for(int i = 1;i <= cell;i++)
 {
  jail[i] = 1;
 }
}

int gcd(int a)    //求a的约数个数
{
 int time = 0;
 for(int i = 2;i <= a;i++)
 {
  if(a%i == 0)
   time++;
 }
 return time;
}
void solve()
{
 for(int i = 2;i <= cell;i++)
 {
  int times_switch = gcd(i);
  if(times_switch%2 == 1)
   jail[i] = 0;

 } int num = 0; for(int j = 1;j <= cell;j++)    //统计门开着的个数 {  if(jail[j] == 1)   num++; } cout<<num<<endl;}int main(){ int n;// int cell; cin>>n; while(n--) {  cin>>cell;  init();  solve(); } return 0;}
原创粉丝点击