zoukankan      html  css  js  c++  java
  • ZOJ Problem Set

    这是一道很简单的题目,题目大概意思说下:就是有n个监狱(编号从1到n),第一次全部打开,第二次打开编号为2的倍数的,第三次打开编号为3的倍数的,以此类推。。。最后问你有几个监狱是打开的

    题目中我使用了memset函数来为数组初始化,发现了自己一个以前疏忽的地方

    1.void * memset(void*,int,size_t)

    这里的size需要注意是以字节为单位,所以当你为个数为n的整型数组赋初值时要这样写memset(name,1,n*sizeof(int));

    2.memset在头文件string.h中

    3.memset只能赋初值0或者1(这个好理解,因为计算机中bit只有这两种状态)

    代码:

    #include <stdio.h>
    #include <algorithm>
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    int main()
    {
        int cell[101],lines,n;
        scanf("%d",&lines);
    
        while(lines--)
        {
            memset(cell,0,101*sizeof(int));
            scanf("%d",&n);
            int i,r;
            
            for(r=2;r<=n;r++)
            {
                for(i=r;i<=n;i+=r)
                {
                    if(cell[i])
                        cell[i]=0;
                    else
                        cell[i]=1;
                }
            }
    
            int esp=0;
            for(i=1;i<=n;i++)
            {
                if(!cell[i])
                    esp++;
            }
    
            printf("%d
    ",esp);
        }
    
        return 0;
    }
  • 相关阅读:
    C#中async/await中的异常处理
    Xunit
    Markdown安装与简单使用
    .Net Ajax跨域请求总结
    centos 安装 Vmare tool
    linux安装Java
    linux常用命令整理
    autofac解析Mvc和Webapi的坑
    swarm on ubuntu
    deploy service on swarm
  • 原文地址:https://www.cnblogs.com/xlturing/p/3357352.html
Copyright © 2011-2022 走看看