不使用任何循环的打印数字系列的Python程序
问题 -给定两个数 N 和 K,我们的任务是从 N 中减去一个数 K,直到 number(N) 大于零,一旦 N 变为负数或零,我们开始添加 K,直到该数变为原始数 (N )。注意:不允许使用任何循环。例子 :
Input : N = 15 K = 5
Output : 15 10 5 0 1 5 10 15
Input : N = 20 K = 6
Output : 20 14 8 2 -4 2 8 14 20
解释 –我们可以使用递归思想来做到这一点,我们一次又一次地调用函数,直到 N 大于零(在每个函数调用中,我们将 N 减去 K)。一旦数字变为负数或零,我们开始在每个函数调用中添加 K,直到数字变为原始数字。在这里,我们使用单个函数进行加法和减法,但要在加法或减法函数之间切换,我们使用了布尔标志。
Python3
# Python program to Print Number
# series without using loop
def PrintNumber(N, Original, K, flag):
#print the number
print(N, end = " ")
# change flag if number
# become negative
if (N <= 0):
if(flag==0):
flag = 1
else:
flag = 0
# base condition for
# second_case (Adding K)
if (N == Original and (not(flag))):
return
# if flag is true
# we subtract value until
# number is greater than zero
if (flag == True):
PrintNumber(N - K, Original, K, flag)
return
# second case (Addition )
if (not(flag)):
PrintNumber(N + K, Original, K, flag);
return
N = 20
K = 6
PrintNumber(N, N, K, True)
# This code is contributed by Mohit Gupta_OMG
输出 :
20 14 8 2 -4 2 8 14 20
有关详细信息,请参阅不使用任何循环的打印编号系列的完整文章!