免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: forrestgang
打印 上一主题 下一主题

华为面试题(8分钟写出代码) [复制链接]

论坛徽章:
0
1 [报告]
发表于 2013-04-02 19:19 |显示全部楼层
这是被网上讨论烂了的问题,我也来凑个热闹。

#include <stdio.h>
#include <math.h>
int main(void)
{
   int n = 4;
   int a[4] = {-1, 3, -5, 7};
   int b[4] = {11, 13, 17, -19};
   int i, j, k = 1;
   int d0 = 0, d1, temp;
   for(i=0; i<n; i++) {
       d0 = d0 + a - b;
   }
   while(k > 0) {
       k = 0;
       for(i=0; i<n; i++) {
           for(j=0; j<n; j++) {
               d1 = d0 - 2*(a - b[j]);
               if(abs(d1) < abs(d0)) {
                   temp = a;
                   a = b[j];
                   b[j] = temp;
                   d0 = d1;
                   k = 1;
                   break;
               }
           }
           if(1 == k) {
               break;
           }
       }
   }
   printf("d = %d", d0);
   printf("\na = ");
   for(i=0; i<n; i++) {
       printf("%d ", a);
   }
   printf("\nb = ");
   for(i=0; i<n; i++) {
       printf("%d ", b);
   }
   return 0;
}

http://kan.weibo.com/con/3562687971904001

论坛徽章:
0
2 [报告]
发表于 2013-07-12 21:54 |显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP