免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1982 | 回复: 4
打印 上一主题 下一主题

算法求解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-20 22:09 |只看该作者 |倒序浏览
5可用积分
给定一个数组A,里面只出现0-9这10个数字,但不一定全部出现,然后给定一个K的值,求A中大于K的整数当中最小的一个,并输出。例如A={0,1}, k =12,则结果为100.    请编程实现。

最佳答案

查看完整内容

动态规划从低位到高位

论坛徽章:
0
2 [报告]
发表于 2009-08-20 22:09 |只看该作者
动态规划从低位到高位

  1. int find_first_big(int A[], int n, int digit)
  2. {
  3.   int i;
  4.   int B[10];

  5.   
  6.   for(i=0;i<10;i++)
  7.     B[i] = 0;
  8.    
  9.   for(i=0;i<n;i++)
  10.     B[A[i]] = 1;
  11.    
  12.   for(i=0;i<10-digit;i++)
  13.    {
  14.      if(B[digit+i]==1)
  15.       {
  16.         return digit+i;               
  17.       }               
  18.    }
  19. }

  20. int count_digit(int A[], int n, int digit)
  21. {  
  22.   if(digit>A[n-1])
  23.     return (10 + A[0]);
  24.   else
  25.      return find_first_big(A, n, digit);   
  26. }

  27. int* count_dp(int A[], int n, int num)
  28. {
  29.   int i = 0;
  30.   int* p = (int*)malloc(sizeof(int)*10);

  31.   for(i=0;i<10;i++)
  32.     p[i] = 0;
  33.   
  34.   while(num!=0)
  35.    {
  36.      p[len++] = num%10;
  37.      num/=10;  
  38.      printf("p[%d]is %d\n", len-1, p[len-1]);         
  39.    }
  40.   
  41.    
  42.   for(i=0;i<len;i++)
  43.     {
  44.      p[i] = count_digit(A, n, p[i]);
  45.      p[i+1] += p[i]/10;
  46.      p[i] %= 10;
  47.      
  48.      printf("p[%d] is %d\n", i, p[i]);
  49.      printf("p[%d] is %d\n", i+1, p[i+1]);
  50.    
  51.     }
  52.      
  53.    return p;
  54. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-08-20 22:42 |只看该作者
动态规划

论坛徽章:
0
4 [报告]
发表于 2009-08-21 18:00 |只看该作者
貌似2楼的答案是错误的
a=1,4,8
k=1535

此时正解为1811
2楼得到的解为1848

论坛徽章:
1
午马
日期:2013-08-23 23:39:47
5 [报告]
发表于 2009-08-22 09:27 |只看该作者
A中有几个元素就是几进制,
如上2进制
100 = 11 + 1
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP