• 2022-05-31
    如果定义解决汉诺塔问题的函数:hanoi::Int-Int-Int-Int-[(Int,Int,Int)] hanoinstartmidend=...hanoi n start mid end 表示将n(第一个参数)个盘子从start(第二个参数)移到end(第四个参数)上,mid(第三个参数)是辅助柱子,那么在定义中如何表示将n-1个盘子从mid移到end上,start作为辅助柱子?
    A: hanoi n-1 mid end start
    B: hanoi (n-1) mid start end
    C: hanoi (n-1) start end mid
    D: hanoi (n-1) mid end start
  • B

    举一反三

    内容

    • 0

      Hannoi塔问题如下图所示。现要求将塔座A上的所有圆盘移动塔座B上,并仍按同样顺序叠置。移动圆盘时遵守Hannoi塔问题的移动法则。由此设计出解Hanoi塔问题的递归算法正确的为()。 A: A voidhanoi(intn,intA,intC,intB){  if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}} B: B voidhanoi(intn,intA,intB,intC){  if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}} C: C voidhanoi(intn,intC,intB,intA){  if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}} D: D voidhanoi(intn,intC,intA,intB){  if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}

    • 1

      代码填空【使用递归实现二分查找】 int binarySearch(int a[], int key, int low, int high) { if (low > high) return -1; int mid; mid = (low + high) / 2; if (key == a[mid]) return mid; else if (key < a[mid]) return ________(1)__________; else return ________(2)______________; }

    • 2

      下面哪个函数返回中出现substr的第一个字母的标号,如果S中没有substr则返回-1: A: S.rindex(substr,[start,[end]]) B: S.rfind(substr,[start,[end]]) C: S.index(substr,[start,[end]]) D: S.find(substr,[start,[end]])

    • 3

      中值是在一组已排序数值的中间值。假如是奇数数列,则是中间的值,如果是偶数数列,则是中间两个数的平均值。 //求数组a中n个元素的中值[br][/br] double middle(const double a&#91;&#93;,const int n) { int mid=(n-1)/2; if(n%2!=0) return a&#91;mid&#93;; else[br][/br] return【】; } A: (a[mid]+a[mid+1])/2 B: (a[mid]+a[mid-1])/2 C: a[mid]/2 D: a[mid+1]/2

    • 4

      int F(int n){if(n==0)return 1;return n*F(n-1);}是一个递归函数。