git_xy 2016-01-13 08:43 采纳率: 0%
浏览 1769

c语言算法,基数求解最小构成

功能:有一组基数值(正整数),输入一个正整数(小于100),
问:如果该数由基数值相加构成(每个基数可以重复使用)
,那么最少可能利用的基数是多少个。

 #include  <stdio.h> 
#include  <stdlib.h>   
#define   MAXSiZE   100  
/*#define   min(a,b)  ((a) <= (b) ? (a) : (b))*/   
void  main(void) 
{    
    int  num[MAXSiZE+1];   
    int  base[] = {1,3,4};   
    int  k= sizeof(base)/sizeof(int);
    int  n;    
    int  i, j, MIN;
    scanf("%d",&n);
    num[0] = 0;   
    num[1] = 1;    
    //------------------------1111------------------
    for (i = 2; i <= n; i++)    
    {
        MIN=n;
        for(j=0;j<k;j++)       
            if (i>=base[j])          
                MIN=min(num[i-base[j]]+1,MIN);
        num[i]=MIN;
    }   
    printf("Minimum = %\nd",num[n]);
}

这里使用到了贪心算法了吗?
从 1 位置往下研究了很长时间,还是没看懂,那么大神帮忙讲解一番
谢了

  • 写回答

1条回答

报告相同问题?

悬赏问题

  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现
  • ¥85 永磁型步进电机PID算法