数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 04:45:28
就是有一组基数base[]={1,3.4},输入一个正整数,如果这个数是由这三个基数累加在一起的,问构成该数的基数最少要多少个?
我只想知道这道题的算法是什么?
比如输入的数是10,那么最少的基数个数是3,即10=4+3+3
最好是算法的描述

假设输入的数字为 M ,最少基数个数为N
如果M为1.2.3.4.5你自己写吧
假设以下情况M>=6;
1)M%4(取余)余数为0
则N=M/4
2)……余数为1
则N=M/4+1
3)m%4=2)
则最少的基数个数为(m-6)/4+2;
4)……余数为3
则N=M/4+1

如果使得基数个数最少,这要求包含的最大的因子尽可能的多。
对于任意输入的一个数字N,count=0,用来记录基数个数。
应当首先对数组排序,使得数组从小到大依次递增。
(1)当N/4不为0时,对N=N%4,count++;
(2) 从数组中取出一个次小的值,重复上述过程。
直到N被除尽。