java 零钱拼凑,2017腾讯校招笔试编程题-拼凑零钱
今天刚刚参加了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腾讯校招笔试编程题-拼凑零钱相关推荐
- 魔法币 java_网易2018校招笔试编程题-魔法币 java实现
魔法币 原题 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1:如果投 ...
- 2020秋招——XX校招笔试编程题:回文串
回文串判断&打印给定字符串中的所有回文串 笔试时是纸质的,记错了indexOf()函数和charAt()函数,重大失误emmm,这样逻辑虽然都对了还是要gg,ww,反省中... 回文串:aba ...
- 华为2020校招笔试编程题 看这篇就够了(上)
背景 近日一位在华为的师兄整理了一份内部的提纲给我们,想着以后肯定不会去华为,于是乎分享给大家,看看菊花厂今年的笔试题目是什么样子的. 编程题范围 这好像来自一个华为内部的文档,据说今年华为内部也在进 ...
- 奇安信2021年校招笔试编程题
< 2020年9月12日奇安信笔试编程第一题 > <java实现获取数组中的连续子数组> 1. 题目信息 2. 参数要求 3. 解题思路 该题获取糖果可以分解为两个部分: (1 ...
- 搜狗2016年校招笔试编程题记录+总结
不同的职位题目应该不一样,我遇到的2道题,其一是搜狗问答中的作弊判断,其二是矩阵计算. 1. 搜狗问答作弊判断 简单来说,就是存在作弊刷积分的情况,所以需要判断哪些人作弊,判断遵循下面2个原则: (A ...
- 笔试编程题 拼凑正方形 Java题解 牛牛有4根木棍,长度分别为a,b,c,d。羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一。牛牛需要用这四根木棍拼凑一个正方
题目描述 牛牛有4根木棍,长度分别为a,b,c,d.羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一.牛牛需要用这四根木棍拼凑一个正方形出来,牛牛最少需要支付多少硬 ...
- 京东校招java笔试题_2017京东校招笔试编程题:进制转换、辗转相除
题目描述 时间限制:C/C++语言 1000MS 其他语言:3000MS 内存限制:C/C++语言 65536KB 其他语言:589824KB 题目内容:尽管是一个CS专业的学生,小B的数学基础很好并 ...
- 2018 完美世界校招笔试编程题(Java)
01背包简单题,只不过要用Java写,写了比较久一点 import java.util.Scanner; public class Main {public static void main(Stri ...
- 美团2021校招笔试-编程题(通用编程试题,第10场)
import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanne ...
- 美团2021校招笔试-编程题-第10场
链接:淘汰分数_美团笔试题_牛客网 来源:牛客网 某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛,他们的得分分别是a_1,a_2-.a_n,小美作为比赛的裁判希望设定一个分数线m,使得所 ...
最新文章
- MyBatis-Plus 快速开始及详测 SpringBoot 集成Mybatis-Plus
- vb中mschart利用数组作图_选考VB算法解析之2019年4月高考真题卷第17题
- 10-7 B2-1查找订单数最多的员工信息 (20 分)
- 腾讯绝悟AI完全体限时开放体验,研究登上国际顶会与顶刊
- for循环批量写文件 shell_shell之for循环的3个简单脚本
- innobackupex远程备份脚本
- Flutter布局锦囊---轮播图片与滑块
- 鸢尾花数据集的可视化
- 群智能算法(遗传算法, 粒子群算法, 蚁群算法原理与实例分析)
- [渝粤教育] 西南石油大学 钻井与完井工程 参考 资料
- 【分享】超级菜鸟另类玩swf反汇编
- 咸阳无房证明网上办理指南
- 2022年上半年财神爷最爱照顾的星座
- php ssl 465,帝国CMS邮件无法发送 SSL465端口无法发送的问题解决办法
- 在Windows系统中查看下载文件的MD5,SHA1,SHA256校验码
- jQuery发送ajax请求
- 英语语法笔记——冠词
- 网络字节码、本地字节码(大端,小端)
- JS中页面跳转,传值包含中文时乱码解决方案
- 【论文向】NAACL2022 汉语纠错多源、多参考数据集MuCGEC