首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不起作用的简单递归代码

不起作用的简单递归代码
EN

Stack Overflow用户
提问于 2015-07-12 01:34:23
回答 2查看 291关注 0票数 2

我编写了一个递归代码,但我不知道为什么它不能工作。(我更改了前面的一些错误,但它仍然不能工作:( )

问题是:

编写一个递归方法

doubleReverse("hello")打印oolllleehh

到目前为止,我所掌握的代码如下:

代码语言:javascript
运行
复制
public class Recursion{
    public static void main(String[] args) {
        String s = "hello"; 
        doubleReverse(s); 
    }

    public static void doubleReverse(String s) {
        if (s == null || s.equals("")){
        return; 
    }

    System.out.print(s.charAt(s.length()-1) + s.charAt(s.length()-1) + doubleReverse(s.substring(1)));  
    }
}

期望输出的doubleReverse("hello")打印oolllleehh

我得到的输出是:不编译

错误消息:

发现2个错误:

代码语言:javascript
运行
复制
File: /Users/jaeahn/Desktop/CSCI /Practice/Recursion.java  [line: 12]
Error: /Users/jaeahn/Desktop/CSCI /Practice/Recursion.java:12: reference to print is ambiguous, both method print(char[]) in java.io.PrintStream and method print(java.lang.String) in java.io.PrintStream match

File: /Users/jaeahn/Desktop/CSCI /Practice/Recursion.java  [line: 12]
Error: /Users/jaeahn/Desktop/CSCI /Practice/Recursion.java:12: 'void' type not allowed here
EN

Stack Overflow用户

回答已采纳

发布于 2015-07-12 01:50:34

您不需要返回任何内容,但每次都需要传递一个较小的字符串版本,直到打印完所有字符为止。这里有一个实现..。

代码语言:javascript
运行
复制
public static void recurse(String str){
    if(str.length() > 0) {
        System.out.print(str.charAt(str.length()-1));
        System.out.print(str.charAt(str.length()-1));
        recurse(str.substring(0, str.length() - 1));
    }
}
票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31363529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档