![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技巧
keynumber
这个作者很懒,什么都没留下…
展开
-
蓝桥杯 求自然数序列的最小公倍数
问题描述:为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。我们希望寻找到能除尽1至n的的每个数字的最小整数。不要小看这个数字,它可能十分大,比如n=100, 则该数为:697203752297124771645338089353123035原创 2013-06-16 16:49:13 · 2024 阅读 · 0 评论 -
最大不能组合的数
题目描述:小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。 本题的要求就是在已知两个包装的数量时,求最大不能组合出原创 2013-05-18 18:38:30 · 3522 阅读 · 6 评论 -
NYIST 47 过河问题
过河问题时间限制:1000 ms | 内存限制:65535 KB难度:5描述在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行原创 2013-05-13 22:48:23 · 1052 阅读 · 0 评论 -
O(n)时间复杂度旋转字符串
测试代码如下:#include#include //k>0时,向右旋转,k<0时,向左旋转//返回旋转后的字符串char * rotate(char * str, int k){ int num, size, start, i; char ch, tmp; i=0, size=strlen(str), num=0;//忘记初始化num,定义变量时最好初始化原创 2013-04-25 23:52:51 · 930 阅读 · 0 评论 -
不用判断和循环打印1000次
方法1:宏,不断重复#include #define P1 printf("print\n");#define P10 P1 P1 P1 P1 P1 P1 P1 P1 P1 P1#define P100 P10 P10 P10 P10 P10 P10 P10 P10 P10 P10#define P1000 P100 P100 P100 P100 P100 P100 P100 P原创 2013-03-31 14:56:35 · 1657 阅读 · 0 评论 -
只出现一次的数
题目描述:对于给定的数组,其中每个数字都出现偶数次,只有一个数字只出现一次,求该数字此题可利用位操作:异或 的两个运算特性:(1)a^a=0(2)a^b=b^a因此对于该题,只要将所有的数相异或,结果就是要求的数字,时间复杂度为O(n),测试代码如下:#include using namespace std;int main(){ int a[] = {原创 2013-03-31 00:22:26 · 747 阅读 · 0 评论 -
google 笔试题: 丑数
题目描述:题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。方法1: 最简单的想法就是将所有的数枚举,直到产生第n个丑数,但次方法比较耗时,且做了很多无用的工作。方法2: 由丑数的性质可知,丑数的一定是另一个丑数的2、3或5倍,又第一个丑原创 2013-03-31 13:56:21 · 3102 阅读 · 0 评论 -
两个整数的平均值
求两个整数a,b的均值时,经常写的就是(a+b)/2然而此种写法有一个问题就是 a+b 的值可能溢出,如何解决这个问题呢?方法1:对 a 和 b 做判断,若 a 和 b 同为奇数,则给 a/2 + b/2 加 1,否则不加avg = a/2 + b/2 + ((a&1 && b&1)?(1:0))方法2:avg = a & b + (a ^ b)>>原创 2013-05-12 16:35:47 · 1449 阅读 · 0 评论