100万最少分配次数
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int total = 1000000;//总金额
//7的幂次方
int powser[] = {1,7,49,343,2401,16807,117649,823543};
//每种金额的份数
int counts[8] = {0};
int i;
//从最大的幂次方开始分配
for(i = 7;i>= 0;i--){
int maxCount = (total/powser[i])>5?5:(total/powser[i]);
counts[i] = maxCount;
total = total-maxCount*powser[i];
if(total<= 0){
continue;
}
}
//输出结果
printf("分配方案:\n");
for(i = 7;i >= 0 ;i--){
if(counts[i]>0){
printf("%d元 * %d份\n",powser[i],counts[i]);
}
}
int sum = 0 ;
sum = counts[0]+counts[1]+counts[2]+counts[3]+counts[4]+counts[5]+counts[6]+counts[7];
printf("总份数:%d \n",sum);
printf("总金额: %d \n",1000000);
// 请在此输入您的代码
return 0;
}