摘要: ; ======================================================================;; Structure and Interpretation of Computer Programs; (trial answer to excercises);; 计算机程序的构造和解释(习题试解);; created: code17 02/28/05; modified:; (保持内容完整不变前提下,可以任意转载); ================================================================ 阅读全文
posted @ 2012-05-28 19:53 学-无止境 阅读(153) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2012-04-23 14:29 学-无止境 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 大意就是给你n个人,编号为1-n。从第一个人开始报数,报到m时候,第m个人出列。然后下个人从1开始报数,逢m出列。问最后出列的人的编号。刚开始用的是循环链表,纯模拟做法。发现当n很大时,铁定TLE。所以上网搜了下,发现有数学方法解决这个问题。思路就是递推,发现子问题,然后由子问题的解推总问题的解。公式就是:f(1) = 0;f(i) = (f(i - 1) + m) % i; (i > 1)公式的含义我解释一下:f(1)代表就一个人玩游戏,所以不需要踢人,第一个人就是获胜者,但为什么是0不是1本身呢?接着看。。。。。f(i)代表剩i个人时要踢的人,f(i - 1)代表剩i - 1时踢掉的 阅读全文
posted @ 2011-11-27 12:17 学-无止境 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 最近在C语言之家看到好多道约瑟夫问题的程序,有C的,有C++的.其中的实现方法都是用链表,基本上没有看到用数组来做的.我以前用pascal写过用数组和链表分别做这一个问题,现在就将数组这一方法的实现过程用C语言改写,发上来供参考,如有错漏,请指正./* ==================================================== *//* 程序名称: arrayList.c *//* 程序目的: 用数组实现约瑟夫问题 *//* 程序作者: aimt ( computer 021 ) *//* ===================================== 阅读全文
posted @ 2011-11-26 11:51 学-无止境 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 题目描述:请创建一个一维字符型数组,键盘输入数组长度以及数组元素,要求动态创建数组空间,数组元素为英文大小写字母,将小写字母排在前面,大写字母排在后面,要求按照原来的次序不变。输入样例:10AbdBcDfgEF输出样例:bdcfgABDEF看到这个题目,当天晚上我就想到了一种方法,代码如下.#include<stdio.h>#include<string.h>#include<stdlib.h>char *sort(char *,int );int i;void main(){ int n; char *arr; scanf("%d",& 阅读全文
posted @ 2011-11-26 10:48 学-无止境 阅读(160) 评论(1) 推荐(0) 编辑
摘要: 各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:1、 本游戏是一个二人游戏;2、 有一堆石子一共有n个;3、 两人轮流进行;4、 每走一步可以取走1…m个石子;5、 最先取光石子的一方为胜;如果游戏的双方使用的都是最优策略,请输出哪个人能赢。------------------------------- 明显的巴什博弈(简单博弈)题:一种很古老的游戏,双方轮次从某一集合抽取部分,直到最后一人抽空。类似的模型有报数等。假如我是A,对方是B,一共有n石子,一次最多拿m个,我后拿。如果我想取胜,那么在这个轮流拿石子的过程中我必须看B每次拿多少以计算我每次应该拿多少,这样预期结果是我赢;当 阅读全文
posted @ 2011-11-25 21:01 学-无止境 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 谷歌是不少IT人都想去的企业,那么在进入公司前,少不了面试笔试的测试。那么这里我们就总结了如下谷歌笔试题,并提供了一些参考答案。希望对您有用。谷歌笔试题:判断一个自然数是否是某个数的平方。当然不能使用开方运算。假设待判断的数字是 N。方法1:遍历从1到N的数字,求取平方并和N进行比较。如果平方小于N,则继续遍历;如果等于N,则成功退出;如果大于N,则失败退出。复杂度为O(n^0.5)。方法2:使用二分查找法,对1到N之间的数字进行判断。复杂度为O(log n)。方法3:由于(n+1)^2=n^2 + 2n + 1,= ...= 1 + (2*1 + 1) + (2*2 + 1) + ... + 阅读全文
posted @ 2011-11-03 22:03 学-无止境 阅读(1690) 评论(0) 推荐(0) 编辑