• 亮着灯泡的盏数


    题目简介: 
    一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。
    有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。
    注:电灯数和学生数一致。

    输入:3

    输出:1

    第一次遍历两遍,看了网上的,想想可以直接按倍数赋值,速度提升挺多的。

     1 #include<stdio.h>
     2 int a[65536];
     3 int light(int n)
     4 {
     5     int i,j,sum=0;
     6     for(i=1; i <= n; i++)
     7         for (j=1; j * i <= n; j++)
     8                     a[j*i] = !a[j*i];
     9     for (i=1; i < n; i++)
    10         if (a[i])
    11             sum++;
    12     return sum;
    13 }
    14 
    15 int main()
    16 {
    17     int n;
    18     scanf("%d",&n);
    19     printf("%d
    ",light(n));
    20 }

  • 相关阅读:
    MDX函数
    OLAP + MDX
    AIOps指导
    ES Terms 聚合数据不确定性
    redis初步入门
    java写hadoop全局排序
    [工程技巧]
    python与字符集编码
    转载python2进制打包相关
    转载 大端VS小端
  • 原文地址:https://www.cnblogs.com/george-cw/p/3933359.html
Copyright © 2020-2023  润新知