gpt4 book ai didi

c - C中的递归问题

转载 作者:行者123 更新时间:2023-12-02 06:24:42 25 4
gpt4 key购买 nike

几天来我一直在尝试解决这个问题,但似乎我还没有掌握递归的概念。

我必须用 C 构建一个程序(递归在这里是必须的,但也允许循环),它执行以下操作:用户输入 2 个不同的字符串。例如:字符串 1 - ABC字符串 2 - DE

该程序应该打印由用户输入的字符串组合而成的字符串。规则是每个字符串 (1&2) 中字母的内部顺序必须保持不变。这是 string1=ABC & string2=DE 的输出:

abcdeabdceabdecadbceadbecadbc达布斯达贝克大伯关闭

如果有人能帮我一把,那就太好了。谢谢大家。

最佳答案

这是 Java 中的部分解决方案:它应该具有指导意义:

public class Join {                                       // prints:
static void join(String s, String s1, String s2) { // ABCde
if (s1.isEmpty() || s2.isEmpty()) { // ABdCe
System.out.println(s + s1 + s2); // ABdeC
} else { // AdBCe
join(s + s1.charAt(0), s1.substring(1), s2); // AdBeC
join(s + s2.charAt(0), s1, s2.substring(1)); // AdeBC
} // dABCe
} // dABeC
public static void main(String[] args) { // dAeBC
join("", "ABC", "de"); // deABC
}
}

工作原理

基本上你有 String s,“输出流”,和 String s1, s2,“输入流”。捕获每一个机会,您首先从 s1 获取,然后再次尝试从 s2 获取,递归地探索这两个选项。

如果任何时候“输入流”为空,那么您别无选择,只能拿走剩下的(如果有的话)。

关于c - C中的递归问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com