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条回答

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站