递归程序打印所有小于N的仅由数字1或3组成的数字

递归程序打印所有小于n的仅由数字1或3组成的数字

We are given an integer variable as N storing the positive integer type value. The task is to recursively print all the numbers less than given value N having digit 1, 3 or the combination of both.

Let us see various input output scenarios for this −

Input − int num = 40

Output − Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 33 31 13 11 3 1

Explanation − we are given a positive integer value as 40 stored in a variable num. Now, we will recursively find out all the numbers containing digits 1, 3 or both and those numbers less than 40 are 1, 3, 11, 13, 31, 33

Input − int num = 5

Output − Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 3 1

Explanation − we are given a positive integer value as 40 stored in a variable num. Now, we will recursively find out all the numbers containing digits 1, 3 or both and those numbers less than 5are 1 and 3.

Input − int num = 1

Output − Wrong Input

Explanation − 我们给定了一个存储在变量num中的正整数值为1。现在,我们将递归地找出所有包含数字1、3或两者的数字,并且这些数字小于1are 0 because the only positive integer less than 1 is 0 therefore, output is wrong input.

Approach used in the below program is as follows

Input an integer variable as num. Pass it to the function Recursive_Numbers(num) by passing num as the parameter to the function.

Inside the function Recursive_Numbers(num)

Declare a variable as check of type bool and set it with 1.

Check IF num greater than 0 then start WHILE temp greater than 0 AND check to 1. Set digit to temp % 10.

Check IF digit not equals 1 AND digit not equals to 3 then set check to 0. Set temp = temp / 10.

Check IF check is 1 then print num.

Make a recursive call to the function Recursive_Numbers(num – 1)

Example

#include using namespace std;void Recursive_Numbers(int num){   bool check = 1;   int temp = num;   if(num > 0){      while(temp > 0 && check == 1){         int digit = temp % 10;         if (digit != 1 && digit != 3){            check = 0;         }         temp = temp / 10;      }      if(check == 1){         cout<< num << " ";      }      Recursive_Numbers(num - 1);   }}int main(){   int num = 40;   if(num <= 1){      cout<<"Wrong input";   }   else{      cout<<"Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: ";      Recursive_Numbers(num);   }   return 0;}

输出

如果我们运行上述代码,将会生成以下输出

Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 33 3113 11 3 1

以上就是递归程序打印所有小于N的仅由数字1或3组成的数字的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 20:57:22
下一篇 2025年12月10日 22:56:29

相关推荐

  • C程序打印所有ASCII值

    问题 打印 0 到 255 个字符的美国信息交换标准代码 (ASCII) 值,而不将字符初始化为整数类型变量。只需使用格式说明符即可。 解决方案 这里我们编写一个程序,仅打印 65 到 122。 如果您想查看所有 ASCII值,在 for 循环中你可以写如下 – For(i=0;i&lt…

    2025年12月17日
    000
  • 在C语言中编写一个程序来打印实心和空心菱形图案

    程序说明 打印如下所示的实心和空心菱形图案 算法 对于空心菱形 – Accept the Number of Rows for Hollow Rhombus from the UserCreate a Hollow Rhombus containing the same number o…

    2025年12月17日
    000
  • 将以下内容翻译为中文:在C程序中打印1/n的前k位小数,其中n是一个正整数

    输入数字 N,这样 1/N 将返回以十进制指定的形式生成的输出,直到达到限制。 使用浮点数很容易,但挑战在于不使用它们。 输入 − n=5 k=5 输出 − 20000 这意味着如果 n=5 且 k= 5 除以 1/5 后的输出应显示至小数点后 5 位。 算法 StartStep 1 -> D…

    2025年12月17日
    000
  • 将数组表示的数字加1(递归方法)

    给定一个数组,该数组是由非负数字表示的数字的集合,将数字加1(增加由数字表示的数字)。数字存储方式是最高位数字是数组的第一个元素。 要将数字加1到由数字表示的数字 从数组末尾开始,加法意味着将最后一个数字4舍入为5。 如果最后一个元素是9,则将其变为0并进位=1。 对于下一次迭代,检查进位,如果加到…

    2025年12月17日
    000
  • 打印N行数字,使得每对数字之间的最大公约数为K

    gcd gcd代表两个或多个整数的最大公约数,不包括0 例如,要找到48和180的最大公约数 48 = 2 × 2 × 2 × 2 × 3 180 = 2 × 2 × 3 × 3 × 5 最大公约数 = 2 × 2 × 3 = 12。 在给定的问题中,应打印N行,其中元素具有指定的最大公约数 Inp…

    2025年12月17日
    000
  • 在C语言中,不使用循环、递归和宏展开的情况下,打印一个数字100次

    在本节中,我们将看到如何在C语言中打印一个数字100次。有一些限制条件。我们不能使用循环、递归或宏展开。 为了解决这个问题,我们将使用C语言中的setjump和longjump。setjump()和longjump()位于setjmp.h库中。这两个函数的语法如下所示。 示例 #include #i…

    2025年12月17日
    000
  • 打印C语言中的非平方数

    程序描述 一个数的平方是该数乘以自身。 一个平方数或完全平方是一个整数,它是一个整数的平方; 完全平方数是整数的平方。 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 这里是从1到100的所有完全平方数的平方根。 √1 = 1 since 12 = 1&radi…

    2025年12月17日
    000
  • 编写一个在C语言中打印文件中特定行的bash脚本

    在这个程序中,我们被给定一个文件名text.txt。我们的任务是从文件中打印出特定的一行。 为了实现这个目标,bash脚本中有多种方法,它们是awk, sed, head。 语法 $> awk ‘{if(NR==LINE_NUMBER) print $0}’ filen…

    2025年12月17日
    000
  • 二分搜索(递归和迭代)在C程序中的实现

    二分搜索是一种用于在排序数组中查找元素(目标值)位置的搜索算法。在应用二分搜索之前,数组应该被排序。 二分搜索也被称为对数搜索、二分查找、半区间搜索。 工作原理 二分搜索算法通过将要搜索的元素与数组的中间元素进行比较,并根据此比较结果执行所需的过程。 情况1 – 元素 = 中间值,找到元…

    2025年12月17日
    000
  • c语言允许函数的递归调用吗

    c语言允许函数的递归调用吗 允许。C语言中的函数直接或间接调用自己的过程叫递归。 一、递归的两个必要条件 1、存在限制条件,当满足这个条件时,递归便不再继续。 2、每次递归调用之后越来越接近这个限制条件。 立即学习“C语言免费学习笔记(深入)”; 推荐学习:c语言视频教程 二、经典的递归题目-求第n…

    2025年12月17日
    000
  • Python怎样处理JSON嵌套数据结构?递归解析方法

    处理json嵌套数据结构在python中主要依靠递归解析,因为json是树形结构,递归是最自然的处理方式。1. 加载json数据:使用json.loads()将字符串转为字典或列表;2. 创建递归函数处理字典、列表或基本类型;3. 遇到字典遍历键值对,遇到列表遍历元素,遇到基本类型则处理如存储或打印…

    2025年12月14日 好文分享
    000
  • Python中的递归是如何实现的?

    Python中的递归是如何实现的? 递归是一种在算法设计中常用的技术,它可以将一个问题分解成更小的同类问题,并通过不断地调用自身来解决。在Python中,递归函数可以简洁地实现这种分解和调用过程,使得代码更加清晰易懂。本文将介绍Python中递归的实现方式,并提供具体的代码示例。 在Python中,…

    2025年12月13日
    000
  • 在Python中将列表打印为表格数据

    数据操作和分析是编程的关键方面,尤其是在处理大型数据集时。程序员经常面临的一个挑战是如何以清晰和有组织的格式呈现数据,以促进理解和分析。作为一种多功能的语言,Python提供了各种技术和库来将列表打印为表格数据,从而实现信息的视觉吸引力表示。将列表打印为表格数据涉及将数据按行和列排列,类似于表格结构…

    2025年12月13日
    000
  • Python程序打印文件中与给定模式匹配的所有模式

    在文件中查找与特定模式匹配的行是许多应用程序的典型操作,例如日志分析、文本处理和数据过滤。在本文中,我们将讨论用于打印文件中与给定模式匹配的所有模式的 python 程序。为了解决这个问题,我们首先在文件中创建一个模式来保存它。我们的任务是以编程方式创建我们在文件中看到的确切模式。通过应用一些条件,…

    2025年12月13日
    000
  • 在Python中的函数式编程

    函数式编程语言是专门设计用于处理符号计算和列表处理应用的。函数式编程基于数学函数。一些流行的函数式编程语言包括:Lisp、Python、Erlang、Haskell、Clojure等。 函数式编程的特点 函数式编程的最显著特点如下: 函数式编程语言是根据数学函数的概念设计的,它使用条件表达式和递归来…

    2025年12月13日
    000
  • PHP递归遍历数据库结果集_PHP使用递归处理多层查询结果的技巧

    答案:文章介绍了PHP中处理多层级数据的递归技巧,包括构建树形结构数组、限制递归深度防溢出、使用引用优化性能及递归过滤节点。1、将数据库结果转为以ID为键的关联数组,通过递归函数查找子节点并嵌套生成树形结构;2、在递归中添加深度参数,超过设定阈值则终止,防止栈溢出;3、利用引用建立父子关系,一次遍历…

    2025年12月12日
    000
  • PHP递归遍历数组如何做_PHP利用递归遍历多维数组的方法

    答案:通过递归函数可有效遍历多维数组,方法包括基础遍历输出、提取叶子节点值、保留键路径及修改元素值,分别适用于不同场景,确保深层数据被完整访问与处理。 如果您需要处理一个包含多层嵌套的数组,直接使用常规循环将难以完整访问所有元素。通过递归函数可以深入每一层级,确保每个值都被正确读取。以下是几种实现P…

    2025年12月12日
    000
  • PHP递归函数如何避免栈溢出_PHP防止递归栈溢出的有效方法

    答案:通过限制递归深度、使用尾递归优化、改用迭代、利用生成器及调整PHP配置可解决递归栈溢出问题。具体包括设置最大层级防止无限递归,重构为尾递归并传递中间结果,用循环和栈模拟替代递归调用,采用yield减少内存占用,以及合理调整xdebug.max_nesting_level和memory_limi…

    2025年12月12日
    000
  • 如何使用 PHP 递归函数处理数组元素

    通过使用递归函数,我们可以处理复杂的数据结构,如数组元素。这些函数可以自行调用,从而简化了遍历和操作多级结构。在 php 中,递归函数的语法为:function function_name($param)。我们通过在函数内调用自身来实现递归,并在满足特定条件时执行递归。利用递归,我们可以求出数组元素…

    2025年12月12日
    000
  • PHP中递归函数怎么写?

    在php中编写递归函数需要确保有明确的终止条件,并注意性能和堆栈溢出问题。1) 递归函数的核心是调用自身,必须有终止条件,如阶乘函数的$n 在PHP中,递归函数是一种函数调用自身的编程技巧,常用于处理树状结构数据、遍历目录、解决数学问题等。让我们深入探讨一下如何在PHP中编写递归函数,以及一些相关的…

    2025年12月10日
    000

发表回复

登录后才能评论
关注微信