您当前的位置: 首页 >  Python

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python|求一个数的最少加数

发布时间:2019-12-28 00:00:00 ,浏览量:0

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

给定一个正整数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 团队

   

微信号:算法与编程之美          

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

3.3047s