摘要:大半部分题目都是自己做的,可能还有存在错误的地方,还望各位指正。有不会的题目,还请大牛们留下解题思路,谢谢了。第一题:高斯日记大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年
阅读全文
摘要:从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出: 1 2 4 3 输入数字3,则程序输出: 1 2 3 8 9 4 7 6 5 输入数字4, 则程序输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 解题:代码却是写的有点烂,没办法,可能现在局限与现在的思维水平。View Code 1 #include<iostream> 2 using namespace std; 3 4 int map[1000][1000]; 5 6 int main() 7
阅读全文
摘要:方阵的主对角线之上称为“上三角”。 请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。例如:当n=3时,输出:123645当n=4时,输出:12349105867当n=5时,输出:123451213146111571089程序运行时,要求用户输入整数n(3~20)程序输出:方阵的上三角部分。要求格式:每个数据宽度为4,右对齐。解题:还是一道输出问题,信心,细心。
阅读全文
摘要:解题:做这种题目,就是细心,都能做出来的。一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair)(字母不重复,且都为小写字母),然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下:1.首先按行填入密钥串。2.紧接其后,按字母序按行填入不在密钥串中的字母。3.由于方阵中只有25个位置,最后剩下的那个字母则不需变换。如果密钥为youandme,则该方阵如下:youandmebcfghijklpqrstvwx在加密一对字母时,如am,在方阵中找到以这两个字母为顶点的矩形(红色字体):youandmebcfghijklpqrstvwx这对字母的加密字母为该矩形的另
阅读全文
摘要:整数的分划问题。如,对于正整数n=6,可以分划为:65+14+2,4+1+13+3,3+2+1,3+1+1+12+2+2,2+2+1+1,2+1+1+1+11+1+1+1+1+1+1现在的问题是,对于给定的正整数n,编写算法打印所有划分。用户从键盘输入n(范围1~10)程序输出该整数的所有划分。一位大神分别使用了递归和循环来做题,结果证明,还是循环比较好一点。http://blog.csdn.net/ll_0520/article/details/7461295View Code 1 #include<iostream> 2 #define MAX 100 3 using name
阅读全文
摘要:题意:国际象棋,一共64个方格,第一个格子里放一粒麦子,第二个放2粒,第三个放4粒,第四个放8粒。。。。。(后面的数字是前面的两倍)求放满64个格子,一共需要多少粒麦子。解题:还是一个大数的问题。View Code 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int num[1000]; 6 int sum[1000]; 7 memset(num , 0 , sizeof(num)); 8 memset(sum , 0 , sizeof(sum)); 9 num[0] =...
阅读全文
摘要:标题:分红酒 有4个红酒瓶子,它们的容量分别是:9升, 7升, 4升, 2升 开始的状态是 [9,0,0,0],也就是说:第一个瓶子满着,其它的都空着。 允许把酒从一个瓶子倒入另一个瓶子,但只能把一个瓶子倒满或把一个瓶子倒空,不能有中间状态。这样的一次倒酒动作称为1次操作。 假设瓶子的容量和初始状态不变,对于给定的目标状态,至少需要多少次操作才能实现? 本题就是要求你编程实现最小操作次数的计算。 输入:最终状态(逗号分隔) 输出:最小操作次数(如无法实现,则输出-1)例如:输入:9,0,0,0应该输出:0输入:6,0,0,3应该输出:-1输入:7,2,0,0应该输出:2当初比赛的时候做的这道题
阅读全文
摘要:泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。 有一次闲暇时,他提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。 有3个容器,容量分别为12升,8升,5升。其中12升中装满油,另外两个空着。要求你只用3个容器操作,最后使得某个容器中正好有6升油。 下面的列表是可能的操作状态记录:12,0,04,8,04,3,59,3,09,0,31,8,31,6,5 每行3个数据,分别表示12,8,6升容器中的油量 第一行表示初始状态,第二
阅读全文
摘要:标题:分红酒有4个红酒瓶子,它们的容量分别是:9升,7升,4升,2升开始的状态是[9,0,0,0],也就是说:第一个瓶子满着,其它的都空着。允许把酒从一个瓶子倒入另一个瓶子,但只能把一个瓶子倒满或把一个瓶子倒空,不能有中间状态。这样的一次倒酒动作称为1次操作。假设瓶子的容量和初始状态不变,对于给定的目标状态,至少需要多少次操作才能实现?本题就是要求你编程实现最小操作次数的计算。输入:最终状态(逗号分隔)输出:最小操作次数(如无法实现,则输出-1)例如:输入:9,0,0,0应该输出:0输入:6,0,0,3应该输出:-1输入:7,2,0,0应该输出:2最初做这道题的时候,并没有任何思路。最近准备软
阅读全文
摘要:移动字母2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。如图所示。和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:A B D E CA B CD E为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:AB*DECABCD*E 题目的要求是:请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。可以实现输出1,否则输出0。初始状态为:ABCDE* 用户输入的格式是:先是一个整数n,表示接下来有n行状态。程序输出也应该是n行1或0 例如,用户输入:3ABC
阅读全文