货币(编程基础 C++)

这是一道关于货币改革的编程题目,要求在最大货币面值N的限制下,找出能最大化面值数量且满足每种面值是其更小面值倍数的方案。输入为一个整数N,输出应为所有可能的面值,按从大到小排序。解题思路是分解N的质因数。当N为10时,最优面值组合为10, 5, 1。" 124066550,1298820,Go语言实践:TDD原则与测试策略解析,"['单元测试', 'Go开发', 'TDD实践', '软件测试', 'CI/CD']
摘要由CSDN通过智能技术生成

货币
总时间限制: 1000ms 内存限制: 65536kB
描述
某国在进行货币改革。国王提出最大的货币面值只能为N。国王希望这次货币改革后的每一种面值都是比它更小的面值的倍数。在给定N的情况下,他们希望面值的数量能够最多。请你算出这个国家会有哪些面值的货币。按照从大到小的顺序输出,如果有多个答案,要使得面值之和越大越好。
输入
一个整数N,N<=1000000
30%的数据,N<=100
50%的数据,N<=100000
输出
一行,表示所有的面值,按从大到小的顺序输出,中间用一个空格间隔。
样例输入

10

样例输出

10 5 1

提示
当最大面值为10时,为了满足每种大面值都是比它更小面值的倍数,10 5 1 和10 2 1两种方案的面值数量一样多,但由于前一种面值总和更大,所以答案是前者。

思路点拔:非常简单的一道基础题,如果认真读了题,你就会发现,本题就是对最大的面值进行分解质因数,不多说了,直接上代码!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值