python学习笔记7——列表中整数乘积末尾0的问题
来源:互联网 发布:linux 启动 编辑:程序博客网 时间:2024/06/15 18:11
问题
描述1:
给你一个正整数列表 L, 如 L=[2,8,3,50], 输出L内所有数字的乘积末尾0的个数,
如样例L的结果为2.(提示:不要直接相乘,数字很多,可能溢出)
描述2:
给你一个正整数列表 L, 如 L=[2,8,3,50], 判断列表内所有数字乘积的最后一个非零数字的奇偶性,
奇数输出1,偶数输出0. 如样例输出应为0
思路
将10分解为2*5,注意这里只能分解为2*5,所以我们可以将列表L内的数字分解为因数2和5的个数。则2和5各自个数到最小值就是最终的乘积的0的个数。而如果2到个数大于5,那最终到乘积到最后一个非0数字就是偶数
解决方法
问题1
def splitList(L): count_2=0; count_5=0 newList=[] for item in L: while( item%2 == 0): count_2+=1; item = item/2; while( item%5 == 0): count_5 +=1; item = item/5; #把item加入一个列表里面; newList.append(item) return newList,count_2,count_5# 其实最后发现返回最终到列表没什么用;L = [2,8,3,50]newList,count2,count5 = splitList(L)#下面判断最后一个非零数字的奇偶性,如果质因数中5的个数比2多,说明2已经用完了,最终得到到就是奇数,否则是偶数;if count2>count5: print count5else: print count2
问题2
def splitList(L): count_2=0; count_5=0 newList=[] for item in L: while( item%2 == 0): count_2+=1; item = item/2; while( item%5 == 0): count_5 +=1; item = item/5; #把item加入一个列表里面; newList.append(item) return newList,count_2,count_5# 其实最后发现返回最终到列表没什么用;L = [2,8,3,50]newList,count2,count5 = splitList(L)#下面判断最后一个非零数字的奇偶性,如果质因数中5的个数比2多,说明2已经用完了,最终得到到就是奇数,否则是偶数;if count2>count5: print 0else: print 1
1 0
- python学习笔记7——列表中整数乘积末尾0的问题
- 数据结构与算法——两个大整数的乘积问题
- python学习笔记5—序列与列表的操作
- Python学习笔记——序列、列表
- Python学习笔记 —— List列表
- Python 学习笔记(2)——列表
- Python学习笔记——print&列表
- Python学习笔记——列表
- 《Python基础教程》学习笔记——列表
- python学习笔记——列表
- python学习笔记——列表copy
- Python学习笔记——列表
- [OpenJudge-NOI]连乘积末尾0的个数
- POJ NOI MATH-7657 连乘积末尾0的个数
- Python——列表中存放字典遇到的问题
- 整数相乘末尾0的个数
- python求解给定一个整数N,求N!末尾有多少个0,求N!的二进制中最低位1的位置
- 求整数的乘积
- ISLR读书笔记(2)线性回归
- C/C++内存泄漏及检测
- [bzoj2005][Noi2010]能量采集
- 【操作系统】:学习操作系统应该用哪些书
- java程序控制tomcat启动
- python学习笔记7——列表中整数乘积末尾0的问题
- 新随笔
- 在数据库中设置默认值修改hibernate映射文件
- 用map实现邮箱地址分离
- 饮食——食物
- jsoup数据抓取学习
- activity堆栈式管理
- Oracle数据库中对null值的排序及mull与空字符串的区别
- MyBatis-spring和spring JDBC批量插入Mysql的效率比较