----------------数学------------
田园园野
我坚持,我坚信
展开
-
时光计算 已知天数算日期
题目描述 “人生最苦之事莫过于明知要失去,但是却还没发生。”——基兰废墟之地,曾经有一座恢宏的城池,很久以前在一场可怕的符文战争中灰飞烟灭,就像宏伟屏障之下的大多数陆地一样。尽管如此,还是有一个人生还了下来:一名叫做基兰的魔法师。对于他这样一个时光痴迷者来说,住在城市的钟塔之中是再合适不过了。现在他在精神上漂浮于时间中,思考未来之事。他知道一个时间点,以及多个时间间隔(天),他想知道经过这些时间间原创 2017-04-06 15:53:29 · 1540 阅读 · 0 评论 -
算法训练 最大最小公倍数
问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式 输入一个正整数N。输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106。题解: 当n为奇数时,三个数为奇-偶-奇,两个相邻的自然数互质,其中的两个奇数相差2,也一定互质res=n*(n-1)*(n-2);当n为偶数原创 2017-04-03 12:20:48 · 275 阅读 · 0 评论 -
快速幂取余算法
求a的m次方然后除以t常规想法是如下int f=1;for(int i=1;i<=m;i++){ f=f*a;}f=f%t;1.容易时间超时,效率低下,快速幂的算法便是提高效率,缩短时间。 2.若a和m较大时容易溢出,若在每次进行次方运算前将所要运算的数取余,则会减少溢出的可能。运用公式: (a^m)%t=((a%t)^m)%t 既在每次进行次方运算前(快速幂运算)将所要运算的数原创 2017-02-24 20:41:20 · 598 阅读 · 0 评论 -
1到100的二进制表示
1=12=103=114=1005=1016=1107=1118=10009=100110=101011=101112=110013=110114=111015=111116=1000017=1000118=1001019=1001120=1010021=1010122=1011023=1011124=11原创 2017-02-24 15:21:10 · 105998 阅读 · 6 评论 -
函数交换两数 swap(a,b) a=a^b,b=a^b,a=a^b
方法: 此方法节省内存,调用方便 #define swap(a, b) a=a^b,b=a^b,a=a^b ^是按位异或运算符,也就是对应的位如果不同则结果为1,相同为0。 例如: a = 19,b = 7; 那么a的二进制为:0001 0001,b的二进制为:0000 0111 a ^ b就等于 0001 0011 0000 0111原创 2017-04-01 15:07:24 · 1550 阅读 · 0 评论 -
最大公约数,最小公倍数
2个或n个数的最大公约数,最小公倍数 辗转相除法: 在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法。两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。 例如: 用(a,b)来表示a和b的最大公约数。 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c)。原创 2017-04-01 15:58:35 · 383 阅读 · 0 评论