📌  相关文章
📜  不使用任何循环的打印数字系列的Python程序

📅  最后修改于: 2022-05-13 01:56:56.819000             🧑  作者: Mango

不使用任何循环的打印数字系列的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 

有关详细信息,请参阅不使用任何循环的打印编号系列的完整文章!