编程解决智力题之砝码分配

2014京东研发笔试题全解析:数据结构、操作系统与数据库核心考点 在技术面试中,数据结构、算法、操作系统与数据库等基础知识始终是考察重点。无论是HashMap的底层实现、B+树索引原理,还是TCP三次握手与死锁条件,都是校验工程师是否真正理解计算机核心机制的关键。这些概念不仅决定了代码的性能与可靠性,更直接影响到电商高并发场景下的系统设计。通过解析京东2014年研发工程师校招笔试题,可以系统梳理这些考点,并掌握从链表反转到SQL索引优化等实战技巧。这套题覆盖了后端开发必备的知识底座,是校招求职者检验自身基础、查漏补缺的经典参考。 阅读详情

问题如下:

若有四个砝码称出1~30g间所有整数克,则四个砝码各重多少?

结果是 (1)+(2)+(7)+(20)。

程序如下:

#include <stdio.h>

bool can_get(const int sum, const int a, const  int b,const int c,const  int d, bool verbose= false);
int set_value(const int val, const int status);
int main()
{
    int can_get_acct = 0;
    for(int ia=1;ia<30;ia++)
        for(int ib=1;ib<30;ib++)
            for(int ic=1;ic<30;ic++)
                for(int id=1;id<30;id++)
                {
                    can_get_acct = 0;
                    for(int sum=1;sum<31;sum++)
                    {
                        if (can_get(sum,ia,ib,ic,id))
                            can_get_acct++;
                    }
                    if(can_get_acct==30)
                    {
                        fprintf(stderr,"eurekkkkkkkkkkkkkkkkkkkkkkka!\n");
                        fprintf(stderr,"ahooooo:(%d)+(%d)+(%d)+(%d)\n",ia,ib,ic,id);
                        for(int sum=1;sum<31;sum++)
                            can_get(sum,ia,ib,ic,id,true);
                        return 0;
                    }
                }
    return 0;
}
bool can_get(const int sum, const int a,const  int b,const int c,const  int d, bool verbose)
{
    int sa,sb,sc,sd;
    for(int ia=0;ia<3;ia++)
        for(int ib=0;ib<3;ib++)
            for(int ic=0;ic<3;ic++)
                for(int id=0;id<3;id++)
                {
                    sa = set_value(a, ia);
                    sb = set_value(b, ib);
                    sc = set_value(c, ic);
                    sd = set_value(d, id);
                    if (sa+sb+sc+sd==sum)
                    {
                        if (verbose)
                            fprintf(stderr,"ahooooo:(%d)+(%d)+(%d)+(%d)=%d\n",sa,sb,sc,sd,sum);
                        return true;
                    }
                }
    return false;
}
int set_value(const int val, const int status)
{
    if (status == 0)
        return val;
    else if (status == 1)
        return 0-val;
    else
        return 0;
}


运行结果如下:

eurekkkkkkkkkkkkkkkkkkkkkkka!
ahooooo:(1)+(2)+(7)+(20)

ahooooo:(1)+(0)+(0)+(0)         =1
ahooooo:(0)+(2)+(0)+(0)         =2
ahooooo:(1)+(2)+(0)+(0)         =3
ahooooo:(-1)+(-2)+(7)+(0)       =4
ahooooo:(0)+(-2)+(7)+(0)        =5
ahooooo:(1)+(-2)+(7)+(0)        =6
ahooooo:(0)+(0)+(7)+(0)         =7
ahooooo:(1)+(0)+(7)+(0)         =8
ahooooo:(0)+(2)+(7)+(0)         =9
ahooooo:(1)+(2)+(7)+(0)         =10
ahooooo:(0)+(-2)+(-7)+(20)      =11
ahooooo:(1)+(-2)+(-7)+(20)      =12
ahooooo:(0)+(0)+(-7)+(20)       =13
ahooooo:(1)+(0)+(-7)+(20)       =14
ahooooo:(0)+(2)+(-7)+(20)       =15
ahooooo:(1)+(2)+(-7)+(20)       =16
ahooooo:(-1)+(-2)+(0)+(20)      =17
ahooooo:(0)+(-2)+(0)+(20)       =18
ahooooo:(1)+(-2)+(0)+(20)       =19
ahooooo:(0)+(0)+(0)+(20)        =20
ahooooo:(1)+(0)+(0)+(20)        =21
ahooooo:(0)+(2)+(0)+(20)        =22
ahooooo:(1)+(2)+(0)+(20)        =23
ahooooo:(-1)+(-2)+(7)+(20)      =24
ahooooo:(0)+(-2)+(7)+(20)       =25
ahooooo:(1)+(-2)+(7)+(20)       =26
ahooooo:(0)+(0)+(7)+(20)        =27
ahooooo:(1)+(0)+(7)+(20)        =28
ahooooo:(0)+(2)+(7)+(20)        =29
ahooooo:(1)+(2)+(7)+(20)        =30



 

腾讯2013研发笔试复盘:吃透经典题,打通大厂面试底层逻辑 校招和社招的笔试准备,与其盲目刷海量新题,不如回头吃透几套经典真题。技术面试中反复出现的数据结构、C++内存模型、操作系统并发、网络协议等核心概念,本质上都在考察工程师对基础原理的理解深度。通过经典题目复盘,既能梳理知识盲区,也能训练从抽象建模到工程落地的完整思维链。这套方法论不仅适用于笔试应试,对日常编码中的内存管理、性能优化和问题排查同样有指导意义。从基础概念出发,结合大厂历年真题的考察逻辑,帮助求职者建立系统化的复习路径,真正提升面试竞争力。 阅读详情

相关推荐

量化策略缺数据?一份QMT/PTrade免费数据清单与特殊数据源QtFactor评测

本文为量化策略开发者提供QMT和PTrade平台的免费数据资源清单,并深度评测QtFactor在补充特色数据方面的价值。涵盖Tick级数据、Level2行情、资金流向等关键信息,帮助开发者在预算有限的情况下构建高效数据解决方案,特别适合打板策略和日内回转交易。

weixin_29058331的博客 416

一个商人有一个质量为40磅的砝码

一个商人有一个质量为40磅的砝码,一天他不小心将砝码摔成了4块。 商人发现每块砝码的质量都是整数磅,而且每块砝码的质量各不相同, 并且发现这4块砝码碎片可以在天平上称出1—40磅之间的任意质量(整数磅,即1磅,2磅,……)。 问这4块砝码碎片的质量各是多少? #include<bits/stdc++.h> using namespace std; int a[4]; int b[4]; bool c[41]; void dfs(int id){ if(id>=4){ int w=0

qq_45961314的博客 723

VMvare 桥接模式无法联网、没有未桥接的主机网络适配器,无法将网络更改为桥接状态。

很多程序员,整天沉浸在业务代码的 CRUD 中,业务中没有大量数据做并发,缺少实战经验,对并发仅仅停留在了解,做不到精通,所以总是与大厂擦肩而过。我把私藏的这套并发体系的笔记和思维脑图分享出来,理论知识与项目实战的结合,我觉得只要你肯花时间用心学完这些,一定可以快速掌握并发编程。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!战项目源码讲义》点击传送门即可获取!**

q16974058的博客 4330

798A - Mike and palindrome

In this problem,we can change the only one character.We define a variable amount to count the number of different characters when we traverse from the both ends to the middle.When the amount>=2,it mea

zju2016的博客 451

倒立摆入门详解+pid调参

倒立摆制作全过程 最近在练习pid的控制算法,就选用了2013年的电子设计国赛题目:倒立摆 。 首先给你们看看我的成果 注意哦:倒立摆不是靠上面黄色的传感器保持平衡的,而是通过下面的电机左右扭动使得摆杆不掉下来,难度可不小了。 材料准备 1.机械部分 如图所示选好电机和角位移传感器进行组装就好了,这个部分是我直接网上购买的,如果要自己装也是可以的,不过会比较麻烦,结构差不多的。 2.主控部分 这个部分的话完全是我自己设计的,作用和网上买的一样,因为网上买的话太贵了,有需要的话可以联系我,有pcb文件

small_po_kid的博客 2万+

自动驾驶中的多传感器融合实战:用卡尔曼滤波搞定毫米波雷达与摄像头航迹对齐

本文深入探讨了自动驾驶中多传感器融合的实战技术,重点介绍了如何使用卡尔曼滤波实现毫米波雷达与摄像头的航迹对齐。通过分析传感器特性差异、时空同步挑战及工程化实现步骤,提供了包括状态向量定义、观测矩阵设计和故障检测机制在内的完整解决方案,最终实现0.15米以内的高精度航迹对齐。

weixin_28728495的博客 411

C语言程序题目10题

第2题 (10.0分) 难度:较易 第2章。第3题 (10.0分) 难度:易 第1章。第4题 (10.0分) 难度:易 第2章。第9题 (10.0分) 难度:易 第1章。第10题 (10.0分) 难度:易 第2章。第1题 (10.0分) 难度:中 第2章。

xiaoruiyaa的博客 926

【东华大学oj】找到最大数(一维数组->中等)

一天,老师布置了一个作业,要求对一串数字各不相同的数字串进行排序,大的在前,小的在后。接着,我从数字串中的第二个数字开始往后找,找到最大的一个,然后与第二个数字交换,这样的话我就能够确定排序后数字串中的第二个数字;明明研究发现,他的这个想法中最重要的一环就是在一串数字中找到最大的那个,然后与第一个数字交换,可是明明毕竟刚刚开始学习程序设计不久,无法写出较复杂的程序,所以明明想让你这位程序设计专家帮他的忙,帮助他把这段核心程序写出来,然后明明只需模仿着写就可以了。时间限制: 1S类别: 一维数组->中等。

的博客 525

砝码碎片问题

一位商人有一个40磅的砝码,由于跌落在地而碎成4块,后来称得每块碎片的重量都是整数,而且可以用这4块来称从1到40磅之间的任意整数磅的重物,问这4块砝码碎片各重多少?输出格式为每行输出一组砝码值,值序为升序,用'\t'间隔。 (穷举思想的运用)

m0_74231567的博客 203

博图编写温度程序_s7 smart200的CRC-16校验程序

最近做一个小项目,项目中采用485自由口通讯方式,使用一台西门子S7 smart200对一台冷水机做多个状态和温度做监控,并能对冷水机进行启停控制,和参数设置,因为冷水机的协议不是标准modbus格式,所以要自己编写通信协议。其中要用到CRC校验,在网上找了些别人写的程序,基本上用不了。只能自力更生了。首先,找到CRC校验的算法,并理解。 下面就是我找的算法(这个网上很多),1....

weixin_39539761的博客 3062

杂货店商品数据集挖掘关联规则实验

(2)选择事务集中前100条事务,选择合适的支持度阈值,使用Apriori算法和FP-growth算法挖掘频繁项集(推荐使用mlxtend包的apriori和fpgrowth函数),并对比apriori算法和fpgrowth算法的时间复杂度;(比如用户1000在2015年3月15日对应的事务为{‘sausage’,’whole milk’,’semi-finished bread’,’yogurt’}),然后按照用户ID递增,时间递增的方式对事务进行排序;7. 排版工整自洽,图表标题准确(10分)

m0_62500122的博客 1441

智力题------天平砝码分盐问题

有两个砝码,一个7g,一个2g,还有一个天平。我们有140g的盐,要求称出固定的重量。 类型这种问题, 虽然我们只有两个砝码,7g和2g, 但是我们不止能秤出7g和2g的重量 通过和天平的组合我们还可以称出 9g,5g。 还有我们直接不用砝码,把盐平分就可以得到70g。 需要注意的一点是,在我们称重的过程中,得到的固定重量的盐也是可以当砝码使用的,所以我们的称重就有了很多的可能性。各种砝码重量的组合就有了很多可能性。 案例一:要求称出40g的盐 第一次用天平把140g盐平分,得到..

向上吧贺凯 3542

全局子程序 参数调用

为什么要子程序: 为了实现程序结构化,我们尽量使用不同功能的功能块来实现一些特定的功能, 子程序接口: 使用过程的注意事项,尤其是数组使用时的注意事项 从一个主程序中可以将参数传递到局部或全局子程序和函数中。 怎样传递参数有 2 种方式: 作为 IN 参数 变量值在主程序中保持不变。 这种传递方式也称为“ 值传递 (Call by Value)”。 作为 OUT 参数 子程序读取并更改该值,然后将新值写回到主程序中。 这种传递方式也称为“Call by Reference”。 举例说明 1 DEF MY

Eric_Yang1024的博客 1095

【面试】面试常见的智力题

智力题是一种通过逻辑推理、数学计算或创造性思维来解决的问题。它们通常没有固定的解题模式,需要候选人灵活运用知识和技巧。问题描述为什么井盖通常是圆形的?解题思路从几何、物理和实用性角度分析。答案安全性:圆形井盖不会掉入井口,因为直径相等。易于搬运:圆形井盖可以滚动,便于搬运。均匀受力:圆形结构受力均匀,不易损坏。智力题是面试中常见的考察方式,旨在测试候选人的逻辑思维能力、创造性思维和应变能力。通过掌握常见的智力题类型和解题技巧,候选人可以在面试中更加自信地应对这类问题。多练习。

Ape's IT Blog 2316

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

几个智力题。。

1,有50个球,你和你的对手轮流取,你先开始,每次最多取6个,最少取1个,问你怎么可以保证自己一定可以得到最后一个球? 2,两个机器人,初始时位于数轴上的不同位置。给这两个机器人输入一段相同的程序,使得这两个机器人保证可以相遇。程序只能包含“左移n个单位”、“右移n个单位”,条件判断语句If,循环语句while,以及两个返回Boolean值的函数“在自己的起点处”和“在对方的起点处”。...

A5656665656556的博客 549

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

哈哈,收集的智力题

1、微软面试题:利用天平砝码,三次将140克的盐 分成50、90克两份?         有一个天平,2克和7克砝码各一个。如何利用天平砝码在三次内将140克盐分成50,90克两份。 解决方法1:1. 利用天平将140克分成70,70克两份。                       2. 利用天平将70克分成35,35克两份。                       3. 利用

OOM 1173

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

经典智力题

一、微软58题 A.逻辑推理 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你 的工人付费?   2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。   3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, 小明的弟弟要3秒,小明的爸爸要6...

y471519146的博客 1万+

微软面试58道逻辑面试题

一、微软面试58逻辑推理题 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你 的工人付费? 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, 小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每 次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会 熄灭。问:小明

dan_dan的博客 6万+

2019阿里内推-测试开发面经

一面: 2018-8-19 3:34开始 共12分钟 ┭┮﹏┭┮但是从3点等到3点半 很焦躁啊 不管答的怎么样,但是小姐姐很温柔啊 1. 自我介绍 2. 之前有处理数据流的经验,具体讲讲怎么处理的 3. 密码实验室的项目,有多少人,怎么分配,你的主要任务 4. c/c++/Java的区别。。。 Java和c++区别 不造啊 5. Linux创建目录命令,查找目录命令 6. 有一个字段...

u012634258的专栏 2023

阿里巴巴2015校招研发岗笔试真题解析:数据结构与算法考点复盘

在线笔试是技术人才筛选的重要环节,其考察核心并非单纯的代码编写能力,而是对数据结构、算法、操作系统等计算机基础知识的深度理解与灵活运用。从原理层面看,二叉树遍历、动态规划、页面置换算法、TCP状态迁移等经典考点,本质上都在检验工程师能否将抽象理论映射到真实工程场景。掌握这些基础概念,不仅能提升笔试通过率,更能为后续的系统设计、性能优化等复杂问题打下扎实根基。在校招、社招或职业进阶等场景中,无论是应对在线编程题、逻辑推理题还是开放设计题,扎实的基础知识都是解决问题的关键支撑。本文基于阿里巴巴2015年校招研发

weixin_27758233的博客 353

从京东实习生笔试模拟题看研发岗位校招备考要点

在计算机技术的学习与求职过程中,笔试一直是检验基础能力的重要环节。无论是数据结构、算法、操作系统还是计算机网络,这些核心知识构成了研发岗位考察的基本盘。理解概念背后的原理,掌握技术在实际工程中的应用价值,是应对各类在线评测与模拟练习的关键。对于准备大厂校招或暑期实习的同学而言,通过经典的模拟练习来熟悉命题逻辑和题型结构,往往比盲目刷题更有效。本文以一套早年的京东实习生招聘模拟练习为切入点,梳理研发类笔试的考点分层、高频题型与备考策略,从基础概念到算法推演,从时间管理到考后复盘,帮助读者建立系统化的笔试准备框

weixin_30402343的博客 371

C++/MFC面试逻辑题解析:从思维训练到工程实践

逻辑思维是软件工程师解决复杂问题的核心能力,尤其在C++/MFC开发中,面对内存管理、性能优化等挑战时,清晰的逻辑推理至关重要。其原理在于通过结构化的问题拆解和算法思维,将模糊需求转化为可执行方案,这不仅能提升代码质量,还能有效应对系统设计中的资源调度与边界条件处理。在面试场景中,逻辑题常以“烧绳子计时”、“倒水问题”等形式出现,旨在考察候选人的问题分析与应变能力。掌握这类问题的解题心法,如分治策略和动态规划思想,对于实际开发中的缺陷排查与架构权衡具有直接指导意义。本文聚焦C++/MFC面试,深入剖析逻辑题

weixin_33984032的博客 460

[益智]:砝码称轻重

文章目录题目一题目二 题目一 有一个天平,九个砝码,其中一个砝码比另八个要轻一些,问至少要用天平称几次才能将轻的那个找出来? 至少2次: 第一次,一边3个,哪边轻就在哪边,一样重就是剩余的3个; 第二次,一边1个,哪边轻就是哪个,一样重就是剩余的那个; 题目二 十组砝码每组十个,每个砝码都是10g重,但是现在其中有一组砝码每个都只有9g重,现有一个能显示克数的秤,最少称几次能找到轻的那组? 至少1次: 将砝码分组1~10,第一组拿一个,第二组拿两个以此类推。。第十组拿十个放到秤上称出克数x,则y =

AngelDg的博客 1283

【每日一道智力题】之如何最快的找到最轻的砝码

【每日一道智力题】之如何最快的找到最轻的砝码

睿的博客 1104

(2)注码法的价值

(2)注码法的价值 (2)注码法的价值 posted on 2016-08-17 22:51lexus 阅读(...) 评论(...) 编辑 收藏 ...

363

智力题:砝码称重问题

第一题 假设有280g食盐,有一架天平,有两个砝码,分别是14g,4g.请问能否在3次内将280g食盐分为100g和180g两堆,请详细描述你的解决方法 解法一: 第一次:平分280g的食盐:140g、140g 目前重物:食盐:140g、140g,砝码:4g、14g 第二次:平分140g的食盐:70g、70g 目前重物:食盐:70g、70g、140g,砝码:4g、14g 我们再需要称...

weixin_33805992的博客 1522
上一篇: 编程解决智力题之统计正方形
下一篇: 常见Linux/Unix开发辅助命令什锦
Rozen
博客等级 码龄16年 19粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值