试编写一个求解Josephus问题的函数。用整数序列1,2,3.….n表示顺序围坐在圆桌周围的人,并采用数
第2题
例如,求72和40的最大公因数,即计算GCD(724,344):
GCD(724,344)=GCD(344,724%344)=GCD(344,36)
=GCD(36,344%36)=GCD(36,20)
=GCD(20,36%20)=GCD(20,16)
=GCD(16,20%16)=GCD(16,4)
=GCD(4,16%4)=GCD(4,0)
=4
第3题
8行上布放棋子。在每一行中有8个可选择位置,但在任一时刻,棋盘的合法布局都必须满足3个限制条件,即任何两个棋子不得放在棋盘上的同一行、或者同一列、或者同一斜线上。试编写一个递归算法,求解并输出此问题的所有合法布局。(提示:用回溯法。在第n行第j列安放一个棋子时,需要记录在行方向、列方向、正斜线方向、反斜线方向的安放状态,若当前布局合法,可向下一行递归求解,否则可移走这个棋子,恢复安放该棋子前的状态,试探本行的第j+1列)
第4题
计算多项式Pn(x) –a0xn十a1xn-1+a2xn-2+…+an-1x十an的值, 通常使用的方法是一种嵌套的方法。它可以描述为如下迭代形式:bv=av,bi+1=x×bi+ai+1, i=0, 1,…,n-l。若设bn=Pn(x) , 则问题可以写为如下形式:Pn(x) =x×Pn-1(x)+an, 此处, Pn-i(x) =avxn-1+a1xn-2+…+an-2x+an-1, 这是问题的递归形式。试编写一个函数, 计算这样的多项式的值。
第5题
第7题
二叉搜索树中,然后对树进行中序遍历,并将元素按序放人数组a中,为简单起见,假设a中的数据互不相同。试编写一个函数,从一棵二叉搜索树中删除最大元素。要求函数的时间复杂性必须是O(h),其中h是二叉搜索树的高度。
第8题
第9题
第10题
(1)用cerr<<及exit(1)语句来终止执行并报告错误;
(2)用返回布尔值false,true来实现算法,以区别是正常返回还是错误返[回;
(3)在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回。
试讨论这3种方法各自的优缺点,并以你认为是最好的方式实现它。
第11题