一点技巧

样题简易的意思就是N盏灯,K个人去关。第K个人只会按下和K成倍数的开关,最后问那几盏灯开着。

题目不难,但是代码里一些技巧很好:

#include<stdio.h>
main()
{
int n,i,k,j,m,first=1;
int a[1008]={0};
scanf("%d%d",&m,&n);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(j%i==0)
a[j]=!a[j];
for(i=1;i<=m;i++)
{if(a[i]){
if(first)
first=0;
else
printf(" ");
printf("%d",i);
}
}
}

首先memset这个函数要在string.h头文件下

么么set(a, 0, sizeof(a))是把数组清0;

当然我个人觉得直接int a[1000]={0};更简单,可能有其他因素吧。

关键它设置了一个FIRST 的变量,遇到first为1(首先就赋值为1)就直接反赋值为0;然后再打印数字,下次遇到0的first的时候就在else里面打出空格;

这个技巧会经常用到,以前都是糊里糊涂的,要不然系统不判别后面是否多一个空格,要是判定,我经常就循环打到倒数第二个,然后再打出一个没有带空格的最后一个。

最后还有一个,这个数组它并没有设成BOOL 型,但是在判断开关的时候用的就是和bool一样的方法,没搞懂int型的数组也能用  =!  ,可以取非??

思路就是这样。

一点技巧

时间: 2024-08-24 02:17:37

一点技巧的相关文章

.NET序列化的一点技巧(附Demo)

阅读目录 介绍 详细 处理 结论 Demo下载 介绍 序列化是将对象状态转换为可保持或传输的形式的过程.序列化的补集是反序列化,后者将流转换为对象.这两个过程一起保证数据易于存储和传输. .NET Framework 提供了两个序列化技术: 二进制序列化保持类型保真,这对于多次调用应用程序时保持对象状态非常有用.例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象.您可以将对象序列化到流.磁盘.内存和网络等.远程处理使用序列化,"按值"在计算机或应用程序域之间传递对象. XM

dev c++的一点技巧

谈谈dev c++使用上的一点技巧吧 dev c++就是这个东西,被广泛用于中学生竞赛--(一个因为界面丑而被指责数年的软件,也就可以打打noip和省选吧) 下面几个功能实际3分钟之内可以实现,却在比赛中让人舒服很多 第一步改为中文 Tools-Environment Options-Language-Chinese 显示如下 第二步在工具中找到编译选项,然后如下把显示最多警告(-wall)打开 这可以提示些小错误(忘记读入,"=="写成"="之类的) 第二步在工具

.NET序列化的一点技巧

介绍 序列化是将对象状态转换为可保持或传输的形式的过程.序列化的补集是反序列化,后者将流转换为对象.这两个过程一起保证数据易于存储和传输. .NET Framework 提供了两个序列化技术: 二进制序列化保持类型保真,这对于多次调用应用程序时保持对象状态非常有用.例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象.您可以将对象序列化到流.磁盘.内存和网络等.远程处理使用序列化,“按值”在计算机或应用程序域之间传递对象. XML 序列化只序列化公共属性和字段,并且不保持类型保真.当您

SpringMVC DispatcherServlet在配置Rest url-pattern的一点技巧

SpringMVC的Controller中已经有了@RequestMapping(value = "detail.do", method = RequestMethod.GET)的方法,并且在web.xml中也配置了DispatcherServlet匹配<url-pattern>*.do</url-pattern>. 有需要对外暴露Rest接口,URL格式如/API/product/query. 于是新增了DispatcherServlet匹配<url-p

NSlog 对于新手的一点技巧和用法.

#ifdef DEBUG # define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define DLog(...) #endif // ALog always displays output regardless of the DEBUG setting #define ALog(fmt, ...) NSLog((@"

关于反编译pyc的一点技巧

现在最流行的是用 https://github.com/rocky/python-uncompyle6 但是有些python小版本不一样,比如2.7.6的某版本,开头的magic number在这个项目中没有收集 这时直接改开头的两字节magic number就可以反编译了 python2.7.16的是 03F3 原文地址:https://www.cnblogs.com/junmoxiao/p/12085013.html

分解质因数的技巧

背景: 有时分解一个很大的合数,因为可能质因子很大,导致分解时复杂度不是严格O(log2n),需要用一点技巧使其复杂度得到保证. 做法: 在筛法求质数时,不用把质数存储成一张表,而用一个数组big[i]保存每个数(不管是质数还是合数)的最大质因数,接着在分解一个数x时,令y=x,之后不断地y/=big[y],并且把每次的big[y]作为x的一个质因数,这样就可以了. 20161115

Entity Framework技巧系列之十二 - Tip 46 - 50

提示46. 怎样使用Code-Only排除一个属性  这次是一个真正简单的问题,由StackOverflow上这个问题引出.  问题:  当我们使用Code-Only把一个类的信息告诉Entity Framework,默认情况下每个属性会成为Entity的一部分,并作为一个存储于数据库中的结果. 通常这是你想要的结果. 但是也有例外,考虑这个类: 1 public class Person{ 2 public int ID {get;set;} 3 public string Firstname

网页颜色的搭配技巧

一般来说,网页的背景色应该柔和一些.素一些.淡一些,再配上深色的文字,使人看起来自然.舒畅对于做网页的初学者可能更习惯于使用一些漂亮的图片作为自己网页的背景,但是,浏览一下大型的商业网站,你会发现他们更多运用的是白色.蓝色.黄色等,使得网页显得典雅,大方和温馨.更重要的是,这样可以大大加快浏览者打开网页的速度. 一般来说,网页的背景色应该柔和一些.素一些.淡一些,再配上深色的文字,使人看起来自然.舒畅.而为了追求醒目的视觉效果,可以为标题使用较深的颜 色.下面是我做网页和浏览别人的网页时,对网页