无需使用任何循环打印数字序列的 Python 程序


在本文中,我们将学习以下问题的解决方案 −

问题陈述 - 给定两个数字 N 和 K,我们的问题是从 N 中减去一个数字 K,直到数字 (N) 大于零 (0),一旦 N 变为负数或零,则我们将开始向其中添加 K,直到该数字变为原始数字 (N)。

例如,

N = 10
K = 4
Output will be: 10 6 2 -2 2 6 10

算法

1. we call the function again and again until N is greater than zero (in every function 
   call we subtract K from N ).
2. Once the number becomes negative or zero we start adding K in each function call 
   until the number becomes the original number.
3. Here we used a single function for purpose of addition and subtraction but to switch 
   between addition or subtraction function we used a Boolean type variable flag.

现在让我们观察 Python 中的实现

示例

 在线演示

def PrintNumber(N, Original, K, flag):
   #print the number
   print(N, end = " ")
   #if number become negative
   if (N <= 0):
      if(flag==0):
         flag = 1
      else:
         flag = 0
   if (N == Original and (not(flag))):
      return
   # if flag is true
   if (flag == True):
      PrintNumber(N - K, Original, K, flag)
   return
   if (not(flag)):
      PrintNumber(N + K, Original, K, flag);
   return
N = 10
K = 4
PrintNumber(N, N, K, True)

输出

10 6 2 -2 2 6 10

此处所有变量都声明在全局名称空间中,如下图所示 −

结论

在本文中,我们了解了在 Python 3.x 或更早版本中无需使用任何循环结构即可打印数字序列的术语。

更新日期: 11-9-2019

631 次浏览

职业生涯 起步

完成课程取得认证

开始
广告