nyoj 222 整数中的1个数以及这类问题

摘要: 之前也写过一篇这样的文章,但是隔了这么久,竟然忘了。还是要有清晰的思路,才能真正的掌握。这道题是这样的:给出两个非负32位整型范围内的数a,b,请输出闭区间[a,b]内所有数二进制中各个位的1的总个数。分析:为的是求2进制中1的个数。从0-15的二进制如下:000000010010001101000... 阅读全文
posted @ 2014-11-17 22:51 togolife 阅读(205) 评论(0) 推荐(0) 编辑

nyoj 84 阶乘的0

摘要: 计算n!的十进制表示最后有多少个0。分析:乘以能被5整除的数时就会出现0。如果有多个5,如25=5*5,则会产生2个0。所以,就是计算 /5 + /25 + /125 + ... 的结果。#include int main (void){ int n, m; scanf ("%d", &n); ... 阅读全文
posted @ 2014-11-17 22:38 togolife 阅读(121) 评论(0) 推荐(0) 编辑

计算1到n整数中,字符ch出现的次数

摘要: 个位ch个数 + 十位ch个数 * 10 + 百位ch个数 * 100;同时如果某一位刚好等于ch,还需要减去多算的一部分值。#include //整数1到n,字符ch出现的次数;如1到12,1出现5次int count1s (int n, char ch){ int i = ch - '0'; i... 阅读全文
posted @ 2013-10-18 21:19 togolife 阅读(410) 评论(0) 推荐(0) 编辑

文本文件和二进制文件

摘要: 读写文件的模式有二进制模式和文本模式。用二进制读取和写入的时候,以字节为单位,不会对输入输出做任何改变。关键是文本文件,在Windows系统中,系统会自动做转变。在unix中,换行符\n表示结束一行并另起一行。而在windows中一行的结束标志是\r\n.为了在程序中隐藏这些区别,当在Windows... 阅读全文
posted @ 2013-07-22 23:35 togolife 阅读(136) 评论(0) 推荐(0) 编辑