今天刚刚参加了2017年的腾讯校招在线笔试,其中有一道编程题是这样的:小明很富有,有币值为2^n(n=0,1,2,3)的硬币各两个,即有两个1块钱的硬币,有两个2块钱的硬币,有两个四块钱的硬币。。。,现在输入一个正整数数m(0

比如输入6,则输出3,因为6=2+4=1+1+4=1+1+2+2。(这里可以看出,每一种组合方法的个数是不用的,四个数的组合方法有一种,3个数的组合方法有一种,2个数的组合方法有一种)

下面是我的解法:

思路:如果每种币值的硬币只有一个,那么这个数的二进制形式中1的个数就是唯一一种拼凑方法。比如说6=110,也就是4+2;如果每个币值的硬币有两个,那么可以用两个数来查找拼凑方法,比如6=4+2=3+3=5+1;但是要避免重复运算,比如7=1+6=3+4,但是都是由1+2+4一种相同的方式组合而来的,那么如何避免重复呢,经过发现,每一个组合(拼凑方法)的数的个数是不同的,因此,可以用一个数组来记录个数为n的组合,如果已经组合过了,就不重复计算。比如7=1+6=3+4,但是6=110一共有两个1,1有一个1,1+6一共有三个1,因此是一种拼凑方法,但是3有两个1,4有一个1,3+4有2+1=3个1,因此不重复计算。

#include

using namespace std;

#include

int main()

{

long n,k,cnt=0,t,p;

set s;///这个集合用来去重

cin>>n;

long i,j;

for(i=0;i<=n/2;++i){

j=n-i;

p=~(i^j);

if(s.find(p)==s.end()){///如果这个凑法跟之前的不重复

s.insert(p);

++cnt;

}

}

cout<

return 0;

}

java 零钱拼凑,2017腾讯校招笔试编程题-拼凑零钱相关推荐

  1. 魔法币 java_网易2018校招笔试编程题-魔法币 java实现

    魔法币 原题 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1:如果投 ...

  2. 2020秋招——XX校招笔试编程题:回文串

    回文串判断&打印给定字符串中的所有回文串 笔试时是纸质的,记错了indexOf()函数和charAt()函数,重大失误emmm,这样逻辑虽然都对了还是要gg,ww,反省中... 回文串:aba ...

  3. 华为2020校招笔试编程题 看这篇就够了(上)

    背景 近日一位在华为的师兄整理了一份内部的提纲给我们,想着以后肯定不会去华为,于是乎分享给大家,看看菊花厂今年的笔试题目是什么样子的. 编程题范围 这好像来自一个华为内部的文档,据说今年华为内部也在进 ...

  4. 奇安信2021年校招笔试编程题

    < 2020年9月12日奇安信笔试编程第一题 > <java实现获取数组中的连续子数组> 1. 题目信息 2. 参数要求 3. 解题思路 该题获取糖果可以分解为两个部分: (1 ...

  5. 搜狗2016年校招笔试编程题记录+总结

    不同的职位题目应该不一样,我遇到的2道题,其一是搜狗问答中的作弊判断,其二是矩阵计算. 1. 搜狗问答作弊判断 简单来说,就是存在作弊刷积分的情况,所以需要判断哪些人作弊,判断遵循下面2个原则: (A ...

  6. 笔试编程题 拼凑正方形 Java题解 牛牛有4根木棍,长度分别为a,b,c,d。羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一。牛牛需要用这四根木棍拼凑一个正方

    题目描述 牛牛有4根木棍,长度分别为a,b,c,d.羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一.牛牛需要用这四根木棍拼凑一个正方形出来,牛牛最少需要支付多少硬 ...

  7. 京东校招java笔试题_2017京东校招笔试编程题:进制转换、辗转相除

    题目描述 时间限制:C/C++语言 1000MS 其他语言:3000MS 内存限制:C/C++语言 65536KB 其他语言:589824KB 题目内容:尽管是一个CS专业的学生,小B的数学基础很好并 ...

  8. 2018 完美世界校招笔试编程题(Java)

    01背包简单题,只不过要用Java写,写了比较久一点 import java.util.Scanner; public class Main {public static void main(Stri ...

  9. 美团2021校招笔试-编程题(通用编程试题,第10场)

    import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanne ...

  10. 美团2021校招笔试-编程题-第10场

    链接:淘汰分数_美团笔试题_牛客网 来源:牛客网 某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛,他们的得分分别是a_1,a_2-.a_n,小美作为比赛的裁判希望设定一个分数线m,使得所 ...

最新文章

  1. MyBatis-Plus 快速开始及详测 SpringBoot 集成Mybatis-Plus
  2. vb中mschart利用数组作图_选考VB算法解析之2019年4月高考真题卷第17题
  3. 10-7 B2-1查找订单数最多的员工信息 (20 分)
  4. 腾讯绝悟AI完全体限时开放体验,研究登上国际顶会与顶刊
  5. for循环批量写文件 shell_shell之for循环的3个简单脚本
  6. innobackupex远程备份脚本
  7. Flutter布局锦囊---轮播图片与滑块
  8. 鸢尾花数据集的可视化
  9. 群智能算法(遗传算法, 粒子群算法, 蚁群算法原理与实例分析)
  10. [渝粤教育] 西南石油大学 钻井与完井工程 参考 资料
  11. 【分享】超级菜鸟另类玩swf反汇编
  12. 咸阳无房证明网上办理指南
  13. 2022年上半年财神爷最爱照顾的星座
  14. php ssl 465,帝国CMS邮件无法发送 SSL465端口无法发送的问题解决办法
  15. 在Windows系统中查看下载文件的MD5,SHA1,SHA256校验码
  16. jQuery发送ajax请求
  17. 英语语法笔记——冠词
  18. 网络字节码、本地字节码(大端,小端)
  19. JS中页面跳转,传值包含中文时乱码解决方案
  20. 【论文向】NAACL2022 汉语纠错多源、多参考数据集MuCGEC

热门文章

  1. 如何在Android中使用OpenCV(最新版本)
  2. Github收集(一):awesome-shell
  3. 某团mtgsig逆向学习
  4. Android自定义底部显示对话框
  5. 工厂测试之听筒和扬声器测试
  6. 北京大学郭炜-生理周期 思路细讲
  7. 支付系统设计三:渠道网关设计06-业务处理
  8. python在银行的应用案例_Python银行存取款案例——详细步骤+源代码,实现,源码
  9. Dubbo Triple
  10. 大数据:电信行业的战略方向