递归程序打印所有小于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

输出

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

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组成的数字的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2585077.html

(0)
上一篇 2025年3月6日 14:57:47
下一篇 2025年2月28日 19:01:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论