编程之美
richard_飞飞
天空中没有翅膀的痕迹,但我已经飞过
展开
-
编程之美2.6 精确表达浮点数
题: 在计算机中,使用float或者double来存储小数是不能得到精确值的。如果你希望得到精确计算结果,最好是用分数形式来表示小数。有限小数或者无限循环小数都可以转化为分数。比如:0.9 = 9/100.333(3)= 1/3(括号中的数字表示是循环节)当然一个小数可以用好几种分数形式来表示。如:0.333(3)= 1/3 = 3/9 给定一个有限原创 2014-03-15 15:55:56 · 1070 阅读 · 0 评论 -
编程之美2.3 寻找发帖"水王"
题目:传说,Tango有一大“水王”,他不但喜欢发帖,还会回复其他ID发的帖子,发帖数目超过帖子总数的一半,如果你有一个当前论坛上所有帖子的列表,其中帖子作者的ID也在表中,你能快速找到这个传说中的Tango水王吗?原创 2014-02-17 14:14:49 · 1579 阅读 · 0 评论 -
编程之美2.4 1的数目
题目描述: 给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。 例如:N=2,1,2出现了1个“1”。 N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。 分析:原创 2014-03-13 00:23:44 · 1280 阅读 · 0 评论 -
编程之美2.7 最大公约数问题
求两个正整数的最大公约数方法1、辗转相除法int gcd(int a,int b){ if(a<b) { return gcd(b, a); } if(b==0) { return a; } return gcd(b, a%b);}缺点;如果该整数是大整数,那么需要频繁地去做取余运算方原创 2014-02-17 15:59:31 · 998 阅读 · 0 评论 -
编程之美2.2 不要被阶乘吓到
问题1:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。int lowestOnePosi(int n){ int num=0; while(n) { num+=n/5; n=n/5; } return num;}问题2:求N!的二进制表示中最低位1的位置code:int lowestOnePo原创 2014-02-16 23:08:05 · 1184 阅读 · 0 评论 -
编程之美2.10 寻找数组的最大值和最小值
问题:寻找数组中的最小值和最大值。原创 2014-02-20 17:36:05 · 1140 阅读 · 0 评论 -
编程之美2.14扩展问题2 求数组的子数组之和的最大值并给出子数组的起始终止位置
#include #include #include #include #include using namespace std;int maxSum(int *a,int n,int &start,int &end){ if(n { return 0; } int maxSum=a[n-1],sum=a[n-1]; start=n-1; en原创 2013-04-12 18:15:19 · 1064 阅读 · 0 评论 -
编程之美2.1 求二进制数中1的个数
题目描述:任意给定一个32位整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4int countOneNum(int n){ if(n==0) { return 0; } int num=0; while(n) { num++; int m=n-1; n=n&m; } return num原创 2014-02-16 21:18:40 · 951 阅读 · 0 评论