我试图使用递归来复制字符串,并且我试图获得O(log n)复杂性。我编写了以下代码,但它仅适用于2的幂。
我试过,但我无法解决所有数字问题。有什么建议吗?
public class Main {
public static int i=1;
public static void main(String[] args) {
// write your code here
String stringnum="a";
System.out.println("Final ="+Print(stringnum,8,stringnum));
}
public static String Print(String string,int num, String originalString){
if(num<=1){
System.out.println("base case called"+ string);
return string;
}
else{
string= string+string;
System.out.println(i+""+string);
i++;
return Print(string,num/2,originalString);
}
}
}
答案 0 :(得分:0)
有些事情:
public static String Repeat(String string, int num) {
if (num <= 0)
return "";
if (num == 1)
return string;
return Repeat(string + string, num / 2) +
Repeat(string, num % 2);
}
编辑:一些提示使您的问题更容易理解
我猜你的意思是你的方法被称为Repeat
而不是Print
。为了进一步混淆,我猜测有很多System.out.println
语句用于调试目的,对吗?
我在对Repeat
的回答中更改了方法名称,以便向观众显示其目的。