python分割数字_python实现整数拆分,输出拆分序列
昨天笔试VIPKID有一道关于整数拆分的题目,要求输出拆分后的序列,当时没有做出来,记录一下可以实现的想法:
题目示例:
从键盘读入一个数 n, 输出所有和为 n 的子序列和,包括 n
测试用例:
输入 5
输出:
1 + 1 + 1 + 1 + 1
1 + 1 + 1 + 2
1 + 1 + 3
1 + 2 + 2
1 + 4
2 + 3
5
解题思路:首先这类需要不断分解的题目,首先想到的是递归法,也就是说将一个大数不断的分解为小数,然后将每一个分解的子数保存在一个 list 中,退出条件为当 n 的值减为 0,然后输出 list 中的值。
def resolve(n, minFlag):
global resCnt
global resList
global p
if n == 0:
resCnt += 1
for i in range(p):
print(resList[i], end="")
if i == p-1: # 当输出到最后一个数字时,不输出 '+'
continue
else:
print("+", end="")
print("")# 输出list中的值以后,换行
for i in range(minFlag, n+1):
resList[p] = i
p += 1
resolve(n-i, i)
p -= 1
if __name__ == '__main__':
# n = int(input())
n = 5
resCnt = 0# 记录子序列的个数
resList = [0] * n
minFlag = 1# 为了保证不重复,维护一个minFlag,来确保每次拆分后的最小值
p = 0
resolve(n, minFlag)
之前在写这道程序题时,使用n, m两个数来做递归。初始值 n = m。
然后每次做判断:
当 n=1 or m = 1 时:
当 n = 1, 直接输出1, 当 m = 1 时,输出 n 个1
当 n = m 时,调用递归函数 divideNum(n, m-1) + 1
当 n < m 时,divideNum(n, n)
当 n > m 时,也分为两种情况:
(1) 第一种 divideNum(n, m-1)
(2) 第二种 divideNum(n-m, n),将这两种的结果相加。
当时通过这种思路来解时,不知道如何输出分解的子序列,只能得出能够分解子序列的个数。
今天上午重新考虑了递归的思路,记录一下能够实现的方法。
标签:__,输出,divideNum,minFlag,python,拆分,序列
来源: https://blog.csdn.net/poplarlang/article/details/101428971
python分割数字_python实现整数拆分,输出拆分序列相关推荐
- 念数字,输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:
输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出fu字.十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8 ...
- python生成数字_Python生成数字图片代码分享
本文向大家分享了几段Python生成数字图片的代码,喜欢的朋友可以参考.具体如下: 最终版本 # -*- coding:utf-8 -*- from PIL import Image,ImageFon ...
- python一组数字按大到小输出_Python练习题 005:三个数字由大到小排序输出
[Python练习题 005]输入三个整数x,y,z,请把这三个数由小到大输出. ----------------------------------------------------------- ...
- python 字符串 数字_Python基础教程:数字、字符串
Python 数字 Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 以下实例在变量赋值时数字对象将被创建: var1 = 1 ...
- python筛选数字_Python简单过滤字母和数字的方法小结
本文实例讲述了Python简单过滤字母和数字的方法.分享给大家供大家参考,具体如下: 实例1 crazystring = 'dade142.!0142f[., ]ad' # 只保留数字 new_cra ...
- python判断数字_Python判断字符串是否为数字
Python判断一个字符串是否为数字,可以分为两种情况考虑. 字符为纯数字 如果需要检测的数字为纯数字,不包括负号,小数点等,可以使用字符串的isdigit()函数来判断>>> a ...
- python浮点数输出格式_python常见的格式化输出小结
本文总结了一些简单基本的输出格式化形式,下面话不多说了,来看看详细的介绍吧. 一.打印字符串 >>> print "I'm %s" % ("jihite ...
- python input 数字_Python:raw_input读取数字的问题
raw_input函数总是返回一个'string'类型的raw_input docs,所以我们必须在这种情况下将totPrimes'string'类型转换为'int'或'float'类型,如下所示:t ...
- python打印浮点数_python – 打印整数或带有n位小数的浮点数
使用Python 3 *,您可以只使用 round(),因为除了舍入浮点数,当应用于整数时,它将始终返回一个int: >>> num = 1.2345 >>> ro ...
最新文章
- ueeditor 百度编译器使用onchange效果
- python是个啥-Python是个什么鬼?师兄用它一年发表5篇SCI!
- Laravel 事件侦听的几个方法 [Trait, Model boot(), Observer Class]
- promise ajax 队列,ES6中的promise,从使用promise封装ajax说起
- STM32 的 JLink 调试时「Flash Timeout」和「Flash Download Failed」问题解决
- Spring Boot YAML配置
- svn怎么上传文件 — 百度经验无耻推广
- mysql count转字符串_MySQL字符串函数
- csgo客户文件与服务器,csgo与远程服务器
- windows api学习笔记-简单的记事本
- Unity 检测物体是否在相机视野范围内
- SysV和BSD启动风格的比较
- 4~20mA变送器量程与输入电流、输出电流的关系
- php判断当前浏览器是否微信浏览器
- 100个特别的遥感应用和用途
- 使用unity制作游戏——打砖块
- 磁盘的扩展卷和压缩卷显示灰色,无法使用
- 2015年自我激励及2014年的总结
- DVFS--动态电压频率调整
- php 网站计数器,php网站计数器
热门文章
- WIN32 使用事件实现高效生产者消费者模型
- Windows消息机制学习笔记(三)—— 消息的接收与分发
- 【Web】让你的web页面滚动更有趣
- Laravel 中 Controller访问Model函数/常量
- 1131 Subway Map (30 分)【难度: 难 / Dijkstra最短路】
- MySQL查询的进阶操作--分页查询
- SQL语言之数据控制语言(Oracle)
- rocksdb原理_手摸手学习 RocksDB 的 Write Buffer Manager
- matlab mbuild setup,关于mbuild的一个问题
- 信息系统项目管理知识--信息安全