算法
张家可
明天不一定会更好,但更好的明天一定会到来!
展开
-
另一种求大数阶乘的算法
大数阶乘 问题描述:编写程序,对给定的n(n 注意:如果要求一个5的阶乘,用整型可以存储,求10的阶乘可以用长整型表示,但若要求100的阶乘,就无法用长整型表示,此时就必须考虑别的方法。 要求的k!的值,必定已求得(k-1)!的值,依次地推,当 k = 2时,要求的1! = 1为已知。求得(k-1)!的值后,对(k-1)!连续累加k-1此后即可求得K!值转载 2013-11-28 11:44:43 · 538 阅读 · 0 评论 -
关于日期的常用算法
关于日期的常用算法有很多,但如果掌握了基本的算法,难一点的可以分解为简单的,各个击破。1)判断一年是否为闰年:[java] view plaincopy//判断一年是否为闰年 static boolean IsLeapYear(int year){ return (year % 400 == 0 || ye转载 2013-11-28 12:39:27 · 738 阅读 · 0 评论 -
大数阶乘的实现
当提到计算一个数的阶乘时,也许很多人都能够轻易的解决,但很多人可能会发现,当计算100或200甚至更大的数的阶乘时,发现一般的方法无法实现,因为就拿200来说,200的阶乘的最后结果的位数达375位,一般的数据类型(如int)根本无法存储,那就得采用其他的方法来解决。 说到这里,可能有人已经想到了,没错,这与求任意位数Pi值及大整数运算的思想都是相似的,即:采用数组来存储。转载 2013-11-28 12:37:03 · 582 阅读 · 0 评论 -
喝汽水问题
问题描述: 1.某学院有m个学生参加南湖春游,休息时喝汽水。南湖商家公告如下: (1) 买一瓶汽水定价1.40元,喝1瓶汽水(不带走)1元。 (2) 为节约资源,规定3个空瓶可换回1瓶汽水,或20个空瓶可换回7瓶汽水。 (3) 为方便顾客,可先借后还。例如:借1瓶汽水,还3个空瓶;或借7瓶汽水,还20个空瓶。 问:m个学生每人喝1瓶汽水(不带走),至少需要多少转载 2013-11-28 12:35:11 · 1065 阅读 · 0 评论 -
C语言经典算法100例(二)
11.判断某一年是否是闰年。[cpp] view plaincopy//判断某一年份是否是闰年 int IsLeapYear(int year) { return (year % 400 == 0 || (year % 4 == 0) && (year % 100 != 0)); } 运行结果:转载 2013-11-28 12:42:05 · 635 阅读 · 0 评论 -
C语言经典算法100例(一)
C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的、更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础。 接下来我们先来看10道: (1)输出9*9乘法口诀。 [cpp] view plaincopy//9*9乘法口诀表 void转载 2013-11-28 12:41:34 · 588 阅读 · 0 评论 -
基础算法思想
算法设计的任务就是:针对一个具体的问题,利用特定的方法和步骤来获取最佳结果。编程的灵魂:算法+数据结构 刚开始学编程的人总是会陷入这样的误区,以为学会了一门语言就学会了编程,总会学各种各样的语言。实际上,语言只是一个工具,解决具体的问题必须依赖于算法,而算法从本质上讲是数学方法的表达。通过一定的数学知识来解答。一个好的系统分析师或设计师,或许他们可以不会任何一种语言,但如转载 2013-11-28 12:40:40 · 571 阅读 · 0 评论 -
常用算法之进制转换
进制转换在实际的编程中会经常使用,尤其是二进制的数。先看一个可以在16进制内任意转换的算法,实际就是:(1)10进制转为其它进制,使用辗转相除,逆序取余(2)其它进制转为十进制,则按权展开代码:[java] view plaincopypublic class Base { /**转载 2013-11-28 12:39:58 · 592 阅读 · 0 评论 -
再来一种求大数阶乘的方法
过多的我就不说了,直接看看代码:java版的:[java] view plaincopy/** * */ package Factorial; /** * @author 牟尼(昵称) * @blog:http://blog.csdn.net/u012027907 * */转载 2013-11-28 12:34:02 · 602 阅读 · 0 评论 -
打鱼还是晒网问题
打鱼还是晒网问题 中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。 问题分析:1)计算从1990年1月1日开始至指定日期共有多少天;2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;3)根据余数判断他是在“打鱼”还是在“晒网”; 若余数为1转载 2013-11-28 12:45:48 · 1526 阅读 · 1 评论 -
C语言经典算法100例(三)
1.河内之塔说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有转载 2013-11-28 12:42:49 · 740 阅读 · 0 评论 -
2014百度校招笔试题
二、算法与程序设计题(本题共45分)1. 使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)。(15分) 算法实现:[cpp] view plaincopy/*实现字符串翻转*/ char* reverse_str(char* st转载 2013-11-28 12:38:41 · 459 阅读 · 0 评论 -
计算任意位数的Pi
当用程序实现求pi的值时,也许你能够很快写出算法(利用求pi的几个公式),但是由于使用单变量保存结果,限于计算机硬件对变量的表示范围有限,因此,最多只能计算出pi值小数点后十多位。但需要得到一个更大位数的pi值时,就得考虑其他的算法。 我们采用这个公式计算pi: pi/2 = 1+1/3+1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9+......转载 2013-11-28 12:38:00 · 795 阅读 · 0 评论 -
经典算法之不定方程问题
所谓不定方程,是指未知数个数多于方程个数,且对解都有一定的限制。 首先,来看一道经典的数学问题“百钱买鸡”问题。 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买鸡”问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买鸡,问翁、母、雏各几何? 意思是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,要求100文钱买100只鸡,求公鸡、母鸡和小鸡应转载 2013-11-28 12:36:05 · 890 阅读 · 1 评论 -
常用算法之最大公约数与最小公倍数
1.欧几里得算法 欧几里得算法就是采用辗转相处的方法来求最大公约数,这是计算两个数的最大公约数的传统算法,其思路如下:(1) 对于已知两数m、n,使m>n;(2)m除以n得余数r;(3)若r = 0,则n为求得的最大公约数,结束;否则执行步骤4;(4)将n的值保存到m中,将r的值保存到n中,重复执行步骤2和3。 有了最大公约数,求最小公倍数就很简单了,将两数相乘的转载 2013-11-28 12:32:49 · 556 阅读 · 0 评论 -
几个有意思的算法
1.题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。转载 2013-11-28 12:47:54 · 521 阅读 · 0 评论