逻辑题--她们分别买了什么

本文通过一道逻辑谜题展示了推理思维在解决复杂情境中的应用,同时提及了职场准备和管理技巧,如面试策略和团队合作。小丽、小玲和小娟的故事揭示了正确分析信息的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关注我,持续分享逻辑思维&管理思维; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;
有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》。

-------------------------------------正文----------------------------------------

小丽、小玲、小娟三个人一起去商场里买东西。她们都买了各自需要的一样东西,而且每个人买的东西还不同。有一个人问她们三个都买了什么。
小丽说:“小玲买的不是手套,小娟买的不是发夹。”
小玲说:“小丽买的不是发夹,小娟买的不是裙子。”
小娟说:“小丽买的不是帽子,小娟买的是裙子。”
她们三个人,每个人说的话都是有一半是真的,一半是假的。
那么,她们分别买了什么东西?

-------------------------------------答案----------------------------------------

三个人都提到了小娟,突破点在小娟。
小玲、小娟说的小娟买裙子时,一个说是,一个说不是,必然有一个人说的是真,一个是假。

 假设小玲说的是真:小娟买的不是裙子。
那小玲说的另一句是假的,推出小丽买的是发夹。
而小娟说自己买裙子是假话,那另一句是真话,推出小丽买的是帽子。
上面两个推理矛盾,因此不成立。

 假设小娟说的是真:小娟买的是裙子。
那小娟说的另一句是假的,推出小丽买的是帽子。
小玲说小娟买的不是裙子是假话,则小玲另一句话是真话,推出小丽买的不是发夹。与上面推论不冲突。
小丽说小娟买的不是发夹,根据上面假设,这句是真的。因此另一句是假的,因此推论出小玲买的是手套。

假设1和假设2必须有一个为真。假设1被推翻。假设2经验证成立。因此是对的

答案是:小丽买了帽子,小玲买了手套,小娟买了裙子。

感兴趣的同学辛苦 关注/点赞 ,持续分享逻辑、算法、管理、技术、人工智能相关的文章。

博主其它经典原创:《管理心得--工作目标应该是解决业务问题,而非感动自己》,《管理心得--如何高效进行跨部门合作》,《管理心得--员工最容易犯的错误:以错误去掩盖错误》,《技术心得--如何成为优秀的架构师》、《管理心得--如何成为优秀的架构师》、《管理心理--程序员如何选择职业赛道》。欢迎大家阅读。

目背景 铃瑚和清兰是从月之都到达幻想乡的两只月兔。正因为降落到了幻想乡进行调查,因此她们通过开团子屋制作团子出售的方式,在幻想乡生活。 为了应对越发繁荣的市场,她们向河城荷取购置了一台团子机器,可以高效地生产出五颜六色的团子。不同颜色的团子的售价不尽相同。由于每天顾客数量很多,购买的团子数量也不少,所以清兰总是搞不清楚一大堆团子的售价如何。 清兰找到了你,希望你能告诉她每次售出团子时,这些团子的总价格。 目描述 清兰使用河童的机器可以生产出各种各样颜色的团子。她发现,对于颜色为 c 的团子,它的售价为 c。同时,团子机器有个特性,那就是生产出来的团子的颜色必然是一段连续的整数。 为了储存已经生产出来的团子,清兰使用了一种类似于「栈」的结构。在一天的开始,这个栈为空栈。现在有 n 次操作,分为两种: 1 l r​:团子机器生产出来了颜色为 l,l+1,⋯r−1,r 的团子。清兰将这些团子依次入栈。也就是在栈顶依次加入 l,l+1,l+2,⋯r−1,r 。 2 k​:有一位客人想要购买 k 个团子。此时清兰会依次从栈顶取出 k 个团子并售出。保证 k 不大于当前栈内的团子个数。 你要做的,就是对于每个操作 2 输出这些团子的总价格。 输入格式 第一行有一个整数 n,表示操作的个数。 接下来 n 行描述一组询问。第一个整数 op 表示询问的种类,若为 1 则为操作 1,为 2 则为操作 2。 对于操作 1,接下来有两个整数 l,r,含义如面所示。 对于操作 2,接下来有一个整数 k,含义如面所示。 输出格式 若干行。对于每次操作 2,输出这些团子的售价之和。 #include<bits/stdc++.h> using namespace std; #define int long long int n; struct node{ int l,r; }; stack<node> st; signed main(){ cin>>n; for(int i = 1;i <= n;i ++){ int op; cin>>op; int ans = 0; if(op == 1){ int l,r; cin>>l>>r; st.push({l,r}); }else{ int k; cin>>k; while(k > st.top().l - st.top().r){ k -= (st.top().l - st.top().r); } st.top().r -= k; ans += (st.top().r + st.top().l) * (st.top().l - st.top().r) / 2; cout<<ans; } } return 0; }
03-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

借雨醉东风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值