
笔试面试
一些算法题
充数的竽
萌萌之中自有真意
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++大数乘法
大数据乘法,两个或者以上的大的数据相乘。 例如: 输入:987654321 123456789 输出:121932631112635269大数据乘法主要用到的原理就是小时候学的竖式乘法。 实现代码的关键点有两个: 1、 for (int i = 0; i < lena; i++) { for (int j = 0; j < lenb; j++)原创 2016-06-03 16:14:02 · 760 阅读 · 0 评论 -
背包问题:贪心和动态规划
用动态规划法来求解问题时主要是对状态和状态转移的分析。 动态规划之01背包问题(最易理解的讲解)相对于动态规划法,贪心算法的缺点是求不到全局最优解。贪心法只是求出当前最好的解,且必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。[背包问题]有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。 要求尽可能让装入背包中的物品总价值最大,但不能超过原创 2017-01-30 16:05:38 · 1414 阅读 · 0 评论 -
对n做反运算:!n
在看剑指offer中求1+2+···+n时,里边提到了反运算。 对于非零n,!n=0,!!n=!(0)=1; 对于零n,!n=1,!!n=!(1)=0; 也就是书中说的,如果对n连续做两次反运算,即!!n,那么非零的n转换为true, 0转换为false原创 2017-06-21 20:48:02 · 951 阅读 · 3 评论 -
华为机试题:坐标移动
题目描述: 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入描述: 一行字符串 输出描述: 输出输入字符串中含有该字符的个数。 输入例子: A10;S20;W10;D30;X;A1A;B10A11;;A10; 输出例子: 10,-10 本题关键之处在原创 2017-01-30 15:54:13 · 814 阅读 · 0 评论 -
华为机试题:句子逆序
题目描述: 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 输入描述: 将一个英文语句以单词为单位逆序排放。 输出描述: 得到逆序的句子。 输入例子: I am a boy 输出例子: boy a am I #include <iostream> #inclu原创 2016-12-28 14:18:48 · 521 阅读 · 0 评论 -
华为机试题:合并表记录
题目描述: 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。 输入描述: 先输入键值对的个数 然后输入成对的index和value值,以空格隔开 输出描述: 输出合并后的键值对(多行) 输入例子: 4 0 1 0 2 1 2 3 4 输出例子: 0 3 1 2 3 4原创 2016-11-27 14:19:03 · 409 阅读 · 0 评论 -
华为机试题:字符个数统计
题目描述: 编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。 输入描述: 输入N个字符,字符在ACSII码范围内。 输出描述: 输出范围在(0~127)字符的个数。 输入例子: abc 输出例子: 3 #include <iostream> #include <string> using namespace std;i原创 2016-12-13 22:47:38 · 365 阅读 · 0 评论 -
华为机试题:取近似值
题目描述: 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整 输入描述: 输入一个正浮点数值 输出描述: 输出该数值的近似整数值 输入例子: 5.5 输出例子: 6 由于题目中直接要求输入的正浮点数,所以能直接用c++的强制类型转换。#include <iostream>using namespace std;in原创 2016-11-23 21:49:14 · 549 阅读 · 0 评论 -
华为机试题:提取不重复的整数
题目描述: 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 输入例子: 9876673 输出例子: 37689 首先把整数的顺序倒过来:int n; int num; while(n){ num = num*10 + n%10; n原创 2016-12-04 22:33:45 · 338 阅读 · 0 评论 -
华为机试题:质数因子
题目描述: 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ),最后一个数后面也要有空格。 输入描述: 输入一个long型整数 输出描述: 按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。 输入例子: 180 输出例子: 2 2 3 3 5 质数有以下性质: - 质数除2以外都是奇数; -原创 2016-11-20 10:50:33 · 842 阅读 · 0 评论 -
华为机试题:字符串最后一个单词的长度
题目描述: 计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 输入例子: hello world 输出例子: 5 代码: #include #include using namespace std; int main() { strin原创 2016-11-15 22:47:30 · 363 阅读 · 0 评论 -
华为机试题:字符串分割
题目描述: •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc 123456789 输出例子: abc00000 12345678 90000000 由题原创 2016-11-19 16:00:20 · 796 阅读 · 0 评论 -
华为机试题:进制转换
题目描述: 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串。 输出描述: 输出该数值的十进制字符串。 输入例子: 0xA 输出例子: 10 直接用c++的输入和输出格式来求。 #include using namespace std; int main原创 2016-11-19 16:49:26 · 570 阅读 · 0 评论 -
华为机试题:明明的随机数
题目描述: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 输入描述: 输入多行,先输入随机整数的个数,再输入相应个数的整数 输原创 2016-11-19 14:36:47 · 545 阅读 · 0 评论 -
华为机试题:计算字符个数
题目描述: 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。 输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。 输出描述: 输出输入字符串中含有该字符的个数。 输入例子: ABCDEF A 输出例子: 1 这里需要注意的是大小写算同一个字母,所以对于输入的字符要加减32#include原创 2016-11-19 11:44:45 · 454 阅读 · 0 评论