随笔分类 -  5 算法实例练习——数学趣题(一)

5.23谁在说谎
摘要:Q:甲说:乙说谎; 乙说:丙说谎;丙说:甲乙两人都说谎。到底谁说谎?谁没有说谎? 阅读全文
posted @ 2017-05-04 14:42 王小东大将军 阅读(167) 评论(0) 推荐(0)
5.22递归实现数制转换
摘要:Q:将输入的二进制转换为十进制表达。 分析:算法中参数sum用来记录累加和。参数m随着递归的深入不断加1,并且递归结束m的值也不会发生变化。因为参数sum和m都要在递归中保持值得不变,因此采用指针传递方式。参数n的值随着递归的深入不断加1,但是每一层的递归n的取值都不同。在将二进制转换为十进制时,2 阅读全文
posted @ 2017-05-04 14:25 王小东大将军 阅读(442) 评论(0) 推荐(0)
5.21数字翻译器
摘要:Q:输入一个数,输出英文表达。 阅读全文
posted @ 2017-05-04 13:22 王小东大将军 阅读(176) 评论(0) 推荐(0)
5.20亲密数
摘要:Q:若整数A的全部因子(包括1,不包括本身)之和等于B,并且整数B的全部因子之和等于A,则称A与B是亲密数。求解3000以内的全部亲密数。 思路:先将1~3000以内所有数的全部因子之和算出来,存入到数组x[]中,这样x[i]中存放的是i的因子之和,寻找{1,2,……3000}范围中所有的亲密数的算 阅读全文
posted @ 2017-05-04 12:44 王小东大将军 阅读(217) 评论(0) 推荐(0)
5.19完全数
摘要:若某个数恰好等于它的因子(包括1,但不包括本身)之和,那么这个数就被称为完全数。例如6的因子为1,2,3,而6=1+2+3.因此6是一个完全数。求出1000以内完全数。 阅读全文
posted @ 2017-05-04 12:06 王小东大将军 阅读(171) 评论(0) 推荐(0)
5.18数字全排列
摘要:思路:根据《关于全排列升降序的一些思考》这篇博客而来。 阅读全文
posted @ 2017-04-30 09:54 王小东大将军 阅读(191) 评论(0) 推荐(0)
5.17移数字游戏
摘要:Q:有一个包含9个圆圈的数阵,将1~8这8个数随机写到数阵外围,只剩下中间一个空圆圈。规定每个数字只能按照数阵中的直线从一个圆圈移动到另一个空的圆圈中。通过若干步的移动,将数阵移动成 1--2--3 8-- --4//中间数字是空格 7--6--5 编写程序,输出数字每一步的移动过程。 阅读全文
posted @ 2017-04-30 09:41 王小东大将军 阅读(263) 评论(0) 推荐(0)
5.16魔幻方阵
摘要:Q:魔幻方阵指在n*n的矩阵中填写1~n*n这些数字,使得每行每列以及两个对角线之和均相等。编写一个程序,打印出一种三阶的魔幻方阵。 思路一: //用来判断i~q是否互不相等 //用来判断i~q这种排列是否满足魔幻方阵的要求 下面再弄 暴力循环。 思路二:DFS深度优先搜索也行! 阅读全文
posted @ 2017-04-30 09:03 王小东大将军 阅读(369) 评论(0) 推荐(0)
5.15求π近似值
摘要:”正多边形逼近“法求π:核心思想是极限的思想。假设一个直径d为1的圆,只要求出该圆的周长C,就可以通过π=C/d方法求出π的值。所以关键是求出该圆的周长C。 ”正多边形逼近“也叫做”割圆术“,当一个圆的内接正多边形边数越多时,其边长就越接近外接的圆周长。 设一个直径为1的圆的内接多边形边长为b,边数 阅读全文
posted @ 2017-04-29 14:49 王小东大将军 阅读(320) 评论(0) 推荐(0)
5.14常胜将军
摘要:Q:有21根火柴,两人轮流取,每人每次可以取走1~4根,不可多取,也不能不取,谁取最后一根谁输。编写一个程序,要求人先取,计算机后取;计算机一方为常胜将军。 分析:想让计算机一方为常胜将军,也就是要让人取到最后一根火柴。这样只有一种可能,让计算机给人只留下1根火柴,因此此时人至少取1根火柴。其他情况 阅读全文
posted @ 2017-04-29 10:33 王小东大将军 阅读(385) 评论(0) 推荐(0)
5.13分解质因数
摘要:Q:任何一个合数可以写成几个质数相乘的形式,这几个质数都叫做这个合数的质因数。例如 24=2*2*2*3. 编写一个程序,实现分解质因数。 方法一: 根据《分解质因数》http://www.cnblogs.com/youxin/p/3232049.html这篇博客学习所得。 补充,若是用上述方法还可 阅读全文
posted @ 2017-04-29 09:59 王小东大将军 阅读(294) 评论(0) 推荐(0)
5.12兔子产仔问题
摘要:Q:已知一对两个月大的兔子以后每个月可以生一对小兔子,而一对新生的兔子出生两个月才可以生小兔子。假如一年内没有发生死亡,则一年内共能繁殖成多少对? 规律: 1月:1对新生的兔子(A1,A2) 2月:1对兔子(A1,A2);因为兔子对(A1,A2)出生两个月后才可以生小兔子,第二个月还没有生殖能力 3 阅读全文
posted @ 2017-04-28 18:47 王小东大将军 阅读(193) 评论(0) 推荐(0)
5.11猴子吃桃问题
摘要:Q:一只猴子第一天摘下若干桃子,当即吃掉一半,又多吃了一个;第二天又把剩下一半吃掉,又多吃了一个;……按照这种吃法,到了第十天,还剩下一个桃子。求第一天共摘下多少桃子。 阅读全文
posted @ 2017-04-28 18:19 王小东大将军 阅读(139) 评论(0) 推荐(0)
4.10寻找水仙花树
摘要:Q:找出3位数的所有水仙花树 阅读全文
posted @ 2017-04-28 18:09 王小东大将军 阅读(183) 评论(0) 推荐(0)
5.9爱因斯坦的阶梯问题
摘要:#include using namespace std; int main() { for(int n=7;;n++) { if(n%2==1 && n%3==2 &&n%5==4 &&n%6==5 && n%7==0) { cout<<n; break; } } return 0; } 阅读全文
posted @ 2017-04-28 18:05 王小东大将军 阅读(205) 评论(0) 推荐(0)
5.8新娘与新郎
摘要:Q:3对新郎新娘,3个新郎ABC,3个新娘XYZ。A说他将和X结婚,X说她的未婚夫是C,C说他将和Z结婚。已知三人说话都是假的。 思路一:直接用数学分析,然后排除。 思路二: 规定wife[i]为husband[0]的新娘,wife[j]为husband[1]的新娘,wife[k]为husband[ 阅读全文
posted @ 2017-04-28 11:16 王小东大将军 阅读(196) 评论(0) 推荐(0)
5.7填数字游戏求解
摘要:Q: ABCD * E ————- DCBA (该计算公式中的ABCDE代表数字不同,编写一个程序,计算出ABCDE各代表什么数字) 思路二:可以看到ABCD取值范围为[1000,9999],E的取值范围[1,9],用5.6判断回文数字的方法把ABCD数字反转为DCBA,即用reverse()函数。 阅读全文
posted @ 2017-04-28 10:54 王小东大将军 阅读(205) 评论(0) 推荐(0)
5.6判断回文数字
摘要:注意:题目是判断回文数字,不是回文字符。当判断回文字符时又是另外一种思路。 在程序中输入的数据应在整数范围内,如果超出整数的范围,则判断不正确。 阅读全文
posted @ 2017-04-28 10:22 王小东大将军 阅读(138) 评论(0) 推荐(0)
5.5百钱买百鸡问题
摘要:Q:鸡翁一,值钱五;鸡母一,值钱三;鸡仔一,值钱一;百钱买百鸡,求各有多少? 解题思路:与5.4三色球一样暴力解决。 阅读全文
posted @ 2017-04-28 10:06 王小东大将军 阅读(195) 评论(0) 推荐(0)
5.4三色球问题
摘要:Q:有12个球,分别是3个红球,3个黄球,6个绿球。将12个球放在一个盒子里,从中任意摸出8个球,编程计算摸出球的各种颜色搭配。 阅读全文
posted @ 2017-04-28 10:00 王小东大将军 阅读(210) 评论(0) 推荐(0)