问题—— 给定两个数N和K,我们的任务是从N中减去一个数K,直到数(N)大于零,一旦N变成负数或零,我们就开始加K,直到这个数变成原来的数(N)。 注: 不允许使用任何循环。
null
例如:
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大于零(在每次函数调用中,我们用K减去N)。一旦这个数字变成负数或零,我们就开始在每个函数调用中添加K,直到这个数字变成原来的数字。在这里,我们对加法和减法都使用一个函数,但为了在加法或减法函数之间切换,我们使用了一个布尔标志。
# 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 then 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
请参阅完整的文章 不使用任何循环打印数字系列 更多细节!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END