前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python|求一个数的最少加数

Python|求一个数的最少加数

作者头像
算法与编程之美
发布2020-02-10 11:55:29
7910
发布2020-02-10 11:55:29
举报
文章被收录于专栏:算法与编程之美

问题描述

给定一个正整数N,将其表示为数字1,2,5,11相加的形式输出。要求上述数字出现的总次数最少(每个数字可以重复使用)

样式要求:

输入说明:一个正整数N (N<= 10000)。. 输出说明:正整数N由1,2,5,11组成的加法表达式,要求非递增排列。 输入样例: 21 输出样例: 21=11+5+5

解决方案

要使数字总数最少,就应该从最大的数开始

用整除确定该加数的数量

用同样的方法确定其他加数的数量

应为格式要求是[]=[]+[]+[]…所以只能由字符串来实现也就是字符串的拼接

因位最后一位没有加号所以只输出到倒数第二位就是所要求的了

Python代码:

N=int(input()) a=N//11 b=(N-a*11)//5 c=(N-a*11-b*5)//2 d=N-a*11-b*5-c*2 s1='21=' while a>0: s1+='11+' a-=1 while b>0: s1+='5+' b-=1 while c>0: s1+='2+' c-=1 while d>0: s1+='1+' d-=1 print(s1[0:len(s1)-1])

END

实习主编 | 王楠岚

责 编 | 王自强

where2go 团队

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档