
C/C++
Dragon_F
这个作者很懒,什么都没留下…
展开
-
哈希表-散列表-哈希存储-代码实现
散列技术既是一种存储方法,也是一种查找方法。散列技术是在记录关键字的存储位置和关键字本身建立了一种对应关系-------就是一种函数关系f 比如:f(key)=a*key+b (a,b为常数) ,存储的数据是key,存储的位置是f(key),这个f(key)可以是某个数组的下标。散列函数:这种函数关系如何确定呢?---2个原则:计算简单(计算复杂导致效率低下)、散列地址分布均匀原创 2016-03-27 23:41:28 · 3195 阅读 · 0 评论 -
小球落地
//小球落地//假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, //求它在第5次落地时,共经历多少米?第5次反弹多高?//high 为高度,sum为总路程,经过n次落地,计数i当前第几次落地void getJourney(int high,int* sum,int n,int i);void main(){int high=0,n=0,i=1,sum原创 2016-07-15 23:28:28 · 519 阅读 · 0 评论 -
放苹果
设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论, 当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m) 当n 1、有至少一个盘子空着,拿掉一个盘子,即相当于f(m,n) = f(m,n-1); 2、所有盘子都有苹果,相当于可以从原创 2016-07-17 18:46:39 · 275 阅读 · 0 评论 -
输入一个整数,将这个整数以字符串的形式逆序输出
/*描述: 描述:输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001知识点: 字符串 样例输入: 1516000 样例输出: 0006151*//*void main(){int n;char str[MAX];while(1){原创 2016-07-15 17:16:13 · 7312 阅读 · 0 评论 -
打印蛇形矩阵
/*题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211*///方法1 --此方法也不烂,不过得找规律哦/*思想:找规律;一行行打印;每行打印元素的个数为下列参数:n+1-i 找出每一行的第一个元素的规律:程序中的out0参数; 确定每一行第一个递增原创 2016-07-15 12:16:17 · 1122 阅读 · 0 评论 -
打印字符串反转
/*打印字符串反转----一个简单的递归搞定*//*void stringreverse(string s,int start){ //把指指针不断地往后,当指针指向最后一个字符(字符串的结束符时往回开始打印) if(start==s.length()) return; stringreverse(s,start+1); cout<<s[start];}原创 2016-07-15 12:02:13 · 685 阅读 · 1 评论 -
验证尼科彻斯定理
/**********************验证尼科彻斯定理***************************************************************************///验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。//除了这里的,可参考利用vector的,http://blog.youkuaiyun.com/sunnyyoona/a原创 2016-07-15 11:58:59 · 843 阅读 · 0 评论 -
日期天数转换
//平年365天 闰年366天//闰年:年数是400的整数倍,或者年数是4的整数倍并且不是100的整数倍int calculate_day(int year,int month,int day);void main(){int year=0,month=0,day=0,sum=0;while(1){cin>>year>>month>>day; sum=calculate_day(year,m原创 2016-07-15 11:51:47 · 3545 阅读 · 0 评论 -
字符串最后一个单词的长度
int GetLastWordLength(char* str){ int len=strlen(str); int i=0; while(*(str+len-1-i)!=' '){ i++; }return i;}原创 2016-08-23 23:17:57 · 448 阅读 · 0 评论 -
称砝码 -动态规划 华为OJ
#include using namespace std; /* 分析:创建一个数组,数组的需要用来标识有可能获得的砝码重量。数组大小为所有砝码重量相加。 哪些需要被标记:1、 重量为0需要被标记(题目要求) (单独处理f[0]=true) 2、每种砝码重量的倍数(数量不超过指定砝码的个数) 3、不同砝码之间的组合原创 2016-08-24 20:40:05 · 2862 阅读 · 0 评论 -
求连续子数组的最大和---2017滴滴笔试编程1
#include "stdio.h"#include"stdlib.h"#include"iostream"#include #include"vector"using namespace std;/*求连续子数组最大和。--动态规划思想假设dp[i]表示以数组A第i个元素结尾的连续子数组和最大 dp[0]=A[0] dp[1]=max(A[1],A[1]+dp[0])原创 2016-09-06 22:56:10 · 1032 阅读 · 1 评论 -
华为笔试题1-2016
老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩. 输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩原创 2016-08-24 23:20:33 · 933 阅读 · 1 评论 -
c语言中的隐形转换--符号转换坑
在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换。 unsigned int a=0; //此时打印出unsigned // int a=0; //此时打印出signed if(a<a-1) printf("\n unsigned"); else printf("\n signed"); 分析:如果a为无符号数原创 2016-12-24 12:00:21 · 4427 阅读 · 0 评论 -
华为oj: 图片整理
/*Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。eg:输入:Ihave1nose2hands10fingers 输出:0112Iaadeeefghhinnnorsssv 思路:对于无序数据排序问题----可用排序都可以解决*/void sortpic(char*原创 2016-07-15 20:06:04 · 773 阅读 · 2 评论 -
完全数计数
/*****************************************************************************************************************//** * * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。 * 它所有的真因子(即除了自身以外的约数)的和(即因子函数),原创 2016-07-15 22:37:45 · 407 阅读 · 0 评论 -
统计兔子总数--斐波那契数列
//有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//要点:斐波那契数列void main(){ int n; while(1){ cin>>n; if(n>0 && n<=120) cout<< rabbit_num(n)<<endl; else cout<<"请输入大于0,小于120的整数原创 2016-07-15 18:25:31 · 734 阅读 · 0 评论 -
C 语言--字符串操作函数--笔记(1)
#include"stdio.h"#include"assert.h"/**'\0' --字符串结束符*/int my_strlen(char* const s);char* my_strcpy(char* dest,const char* src);int my_strcmp(const char *str1,const char* str2);char* my_strcat(c原创 2016-03-23 23:07:23 · 433 阅读 · 0 评论 -
换汽水瓶
/*有这样一道智力题:“某商店规定:三个空汽水瓶能够换一瓶汽水。小张手上有十个空汽水瓶,她最多能够换多少瓶汽水喝?”答案是5瓶,方法例如以下:先用9个空瓶子换3瓶汽水。喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的。喝完以后用3个空瓶子换一瓶满的还给老板。假设小张手上有n个空汽水瓶。最多能够换多少瓶汽水喝原创 2016-07-15 11:56:29 · 779 阅读 · 0 评论 -
C++ vector简单讲解
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=ve转载 2016-07-17 23:42:36 · 402 阅读 · 0 评论 -
vector的成员函数解析
vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问元素,还可以使用指针的偏移方式访问,和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间,vector的优点:1. 可以使用下标访问个别的元素2.转载 2016-07-17 23:46:14 · 442 阅读 · 0 评论 -
实现删除字符串中出现次数最少的字符
/*题目 --华为描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。原创 2016-07-20 16:46:29 · 1981 阅读 · 2 评论 -
堆排序---最大堆的创建和最大推的排序
typedef struct{ int data[100+1]; int length;}Slist;void swap(Slist *L,int i,int j){ int tmp=L->data[i]; L->data[i]=L->data[j]; L->data[j]=tmp;}void HeapAdjust(Slist *L,int s,int m){ //理解原创 2016-08-16 22:19:40 · 1425 阅读 · 0 评论 -
2017滴滴校园招聘笔试编程题2--餐饮利润最大
#include "stdio.h"#include"stdlib.h"#include"iostream"using namespace std;/*分析:符合要求的桌子数量可能比人数批次少,那么应该从m批次中选出部分批次已达到最大收益。 思路:1、把每张桌子可容纳最大人数进行从小到大排序。假设n张桌子对应的a为a[0]、a[1]....a[n-1]原创 2016-09-06 21:37:54 · 1673 阅读 · 4 评论 -
华为笔试题1
#include"iostream"using namespace std;//华为笔试题1//简单题:给出一个字符串(字符数最大为128),删除非字母字符,并将大写字母转为小写字母。最后输出字符串。//比如:输入...dfgDFSFNJ.f(ds 输出:dfgdfsfnjfdsvoid main(){ char str[128]; cin>>str; char*原创 2016-08-19 22:49:24 · 344 阅读 · 0 评论 -
标准C常用库文件及常用函数
标准c包常用头文件alloc.h stdio.hsthlib.hctype.hstring.h math.h system.halloc.h 含的内容 同编译器有关 常用函数:malloc(),realloc(); calloc(),free();stdio.h :主要功能是输入输出操作。原创 2016-07-31 17:57:41 · 2092 阅读 · 0 评论 -
华为OJ(字符串排序)
描述编写一个程序,将输入字符串中的字符按如下规则排序。规则1:英文字母从A到Z排列,不区分大小写。 如,输入:Type 输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入:BabA 输出:aABb规则3:非英文字母的其它字符保持原来的位置。 如,输入:By?e 输出:Be?y样例: 输入: A Famous Saying:原创 2016-08-23 22:39:10 · 1273 阅读 · 0 评论 -
移动坐标
/*开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔。 非法坐标点需要进行丢弃。如AA10; A1A; $%$; YAD; 等。 下面是一个简单的例子 如:原创 2016-07-17 16:32:40 · 650 阅读 · 2 评论 -
变形的杨辉三角形--华为
/* 1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 11 4 10 16 19 16 10 4 1以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数到右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。求第n行第一个偶数出现的位置原创 2016-07-16 17:15:00 · 1003 阅读 · 3 评论 -
如何使用指针从函数返回一个数组。
#include #include using namespace std; //这里function是一个函数,它返回一个指针,该指针指向的是包含20个int类型元素的数组。int (*function())[20] { int i=0; int (*p)[20];//声明一个指向20个元素的指针; p=(int(*)[20])callo转载 2016-12-24 12:54:26 · 6420 阅读 · 0 评论