题:有如下递归代码 solve(t, n): if t=1 return 1 else return 5*solve(t-1,n) mod n 则 solve(23,23)的结果为( )。 A. 1 B. 7 C. 12 D. 22 |
---|
答案:A |
package dioxide.cn.solve;
public class solve {
public static int solve(int t, int n){
if (t == 1) { return 1; }
else { return 5 * solve(t-1, n) % 23; }
}
public static void main(String[] args){
System.out.println(solve(23, 23));
}
}
#include <iostream>
using namespace std;
int solve(int t, int n){
if(t == 1) return 1;
else return (5 * solve(t-1, n) % n);
}
int main(){
cout << solve(23,23) << endl;
return 0;
}
当然,既然是笔试题那肯定是没有计算机在手边的,所以采用的“最佳方案”的话,就是暴力迭代了,以下是与__Lettle__共同探讨得出的思路流程图: