在 Java 中使用递归函数打印 N 次 'a' 和 N 次 'b'
Printing N times 'a' and N times 'b' using a Recursive function in Java
所以,C中的递归函数如下:
void print(int n){
if(n==1){
printf("ab");
return;
}
putchar('a');
print(n-1);
putchar('b');
}
将为您提供输出:aaabbb
如果 n=3。
但是,我试图将此 'translate' 转换为 Java 并提出了一个问题。
我在 Java 中的代码如下所示:(非常相似)
public static void printAB(int n){
if (n==1) {
System.out.println("ab");
}else {
System.out.print("a");
printAB(n-1);
System.out.print("b");
}
}
但我得到的输出是这样的:
aaab
bb
无论我如何尝试,我都无法将最后 2 个 'b' 固定在同一行中。
请帮忙?
变化:
System.out.println("ab");
至:
System.out.print("ab");
所以没有打印换行符。
完整代码:
public static void printAB(int n) {
if (n == 1) {
System.out.print("ab");
} else {
System.out.print("a");
printAB(n - 1);
System.out.print("b");
}
}
printAB(3)
的输出:
aaabbb
所以,C中的递归函数如下:
void print(int n){
if(n==1){
printf("ab");
return;
}
putchar('a');
print(n-1);
putchar('b');
}
将为您提供输出:aaabbb
如果 n=3。
但是,我试图将此 'translate' 转换为 Java 并提出了一个问题。
我在 Java 中的代码如下所示:(非常相似)
public static void printAB(int n){
if (n==1) {
System.out.println("ab");
}else {
System.out.print("a");
printAB(n-1);
System.out.print("b");
}
}
但我得到的输出是这样的:
aaab
bb
无论我如何尝试,我都无法将最后 2 个 'b' 固定在同一行中。
请帮忙?
变化:
System.out.println("ab");
至:
System.out.print("ab");
所以没有打印换行符。
完整代码:
public static void printAB(int n) {
if (n == 1) {
System.out.print("ab");
} else {
System.out.print("a");
printAB(n - 1);
System.out.print("b");
}
}
printAB(3)
的输出:
aaabbb