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 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器