比如说,现在零钱有{1,2,5,10,20,50,},现在给出一个数。可以有多少种分发。而且找的张数不能超过100。
最好有代码实现,和注释啊。
------解决思路----------------------
指定的一个数,对找零中的最大值先除得到一个整数,然后求余,将求余后的数对第二个最大值进行再次计算,直到求余后的值为0;整个过程中的张数为以此除后得到的值。
------解决思路----------------------
public static int [] Change(int num){
int [] arr = {1,2,5,10,20,50};
int [] arr2 = new int [6];
for(int x=arr.length-1;x>=0;x--)
{
arr2[x]=num / arr[x];
num = num % arr[x];
if(num==0)
break;
}
return arr2;
}
------解决思路----------------------
这就是求余。没什么复杂的东西。
------解决思路----------------------
从大到小,除,商是张数,余数作为下一个被除数,直到余0
------解决思路----------------------
楼主貌似问的是多少种分法,并且张数不能大于100张
你们这回答的都是一种就完了