免费注册 查看新帖 |

Chinaunix

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

[算法] 华为面试题,求答案? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2014-08-15 16:37 |只看该作者
回复 18# lichmama


    不对,如果是1+4+8,你的组合就没有

论坛徽章:
0
22 [报告]
发表于 2014-08-15 16:55 |只看该作者
我就想知道怎么处理相同输入的问题,也就是二楼说的“滤重”。

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
23 [报告]
发表于 2014-08-15 20:04 |只看该作者
没有人感觉这题目像只说了一半的感觉吗?
根据这8个数字完成任意几个的组合和    是什么意思?

论坛徽章:
0
24 [报告]
发表于 2014-08-15 22:26 来自手机 |只看该作者
本帖最后由 MTM00 于 2014-08-15 23:49 编辑

给你们个思路吧,没电脑不好验证,采用四重for循环,第一重找算式的第一个数a[m],范围是数组的第0个到第6个数,(m范围0到6);第二重找算式除了第一位数以外还有几个数n,范围是1到7-m;第三重找算式的最后一个数,范围是a[m+n],一直到数组的最后一个数a[7];第四重循环将算式的第一个数(也就是第一重循环的当前值)依次和数组后面的数相加,相加的数的个数是第二重循环的n的当前值减1,结束第四重循环之后再加上第三重的值,然后依次结束循环。注意第三重开始时要初始化sum值。(可以在第四重结束时使用printf("%d+",a[x]);的语句,并在第三重循环里,sum值加上第三重当前值即算式最后一个数的值之后,使用printf("%d=%d\n",a[t],sum);的语句来显示结果)
总体归纳一下,各个算式第一个数是从a[0]递增到a[6],用一个for循环解决这个递增;用第二个for循环解决我在加到最后一个数之前,总共做几次加法,它控制第四重循环要循环多少次;各个算式的最后一个数也是不断递增的,用第三个循环来列举最后一个数的可能值,最后用来加到第四重循环的值上。

论坛徽章:
0
25 [报告]
发表于 2014-08-16 10:33 |只看该作者
本帖最后由 MTM00 于 2014-08-16 10:57 编辑

#include <stdio.h>
#define MAX 81
#define NUM 8
int main(void)
{

        int t,a,x,c,n,sum,*p,num[MAX];
        printf("Please enter %d integers:\n",NUM);
        p=num;
        for(t=0;t<NUM;t++)
                scanf("%d",&num[t]);
        for(a=0;a<NUM-1;a++)
        {
                for(n=1;n<=NUM-1-a;n++)
                {
                        for(x=a+n;x<NUM;x++)
                        {
                                sum=0;
                                for(c=a;c<n+a;c++)
                                {
                                        sum+=p[c];
                                        printf("%d+",p[c]);
                                }
                                sum+=p[x];
                                printf("%d=%d\n",p[x],sum);
                        }
                }
        }
       
        return 0;
}

论坛徽章:
0
26 [报告]
发表于 2014-08-16 19:04 |只看该作者
不好意思,智商太低,题没弄清。(Ps:楼主你的例子举的太坑了)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP