gpt4 book ai didi

c - 在C语言中,如何通过递归打印所有大小为N的二进制数,而不需要2个连续的0

转载 作者:行者123 更新时间:2023-11-30 21:45:51 25 4
gpt4 key购买 nike

如何通过递归打印大小为 N 的所有二进制数,而不需要 2 个连续的 0?根本不使用数组,也不循环。并且它们需要按订单打印。例如:N=3:010011101110111

最佳答案

这里有两个不同的问题。首先是算法:如何独立于任何语言或约束递归地执行任务。简单:

  • 递归函数采用 0 或 1 的序列
  • 如果序列长度为N,则打印并返回
  • 否则如果最后一个元素是 1,则递归两次,一次在序列中添加 0,一次添加 1
  • 否则仅通过添加 1 递归一次

只需使用单例 0 和单例 1 调用该函数即可完成。

第二部分是C实现。您可以使用 int(前提是 N 不大于 int 中的位数)并使用位移位,保持设置的位数来存储序列。实际实现如果留作练习...

关于c - 在C语言中,如何通过递归打印所有大小为N的二进制数,而不需要2个连续的0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47826975/

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