华为OJ
文章平均质量分 52
普通网友
这个作者很懒,什么都没留下…
展开
-
【华为OJ】由寻找等差数列(初级)到动态规划
找了一下网上关于这题的解法,有用动态规划做的,我放到了OJ上,AC了。那么就顺势学习一下动态规划吧,感觉很重要的样子!加油!贴一个知乎链接,大神讲得很好!http://www.zhihu.com/question/23995189那么从经典的背包问题讲起吧:如果限定每种物品只能选择0个或1个,成为0-1问题;如果物品j最多只能选择bj个,称为有界背包问题;如原创 2016-09-08 08:33:33 · 467 阅读 · 0 评论 -
【华为OJ】求解立方根
输入输出均为double型,不允许使用库函数#include using namespace std;int main(){ double a, b; cin >> a ; if (a > 0) { for (b = 0.00;b < a;b = b + 0.1) { if ((a-b*b*b)<0.1) { printf("%.1f", b);原创 2016-08-31 21:41:47 · 269 阅读 · 0 评论 -
【华为OJ】等差数列
2 5 8 11 ...的等差数列输入:n输出:前n项的和#include using namespace std;static int total=0;int diff(int n){ if (n > 0) { total = (3 * n*n + n) / 2; return 0; } else return -1;}int main(){ i原创 2016-09-01 10:53:24 · 239 阅读 · 0 评论 -
【华为OJ】字符统计
【华为OJ】字符统计输入:带空格的字符串输出:统计英文(区分大小写)、数字和空格,其他字符不统计;出现次数多的先输出 一样多的按ASCII输出#include <iostream> #include<algorithm>using namespace std; struct A { char index; int num; }; bool cmp(A a, A原创 2016-09-01 10:37:52 · 364 阅读 · 0 评论 -
【华为OJ】自守数
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数输入:N输出:N以内自守数的个数#include #includeusing namespace std;int main(){ int n; int amount = 0; cin >> n; if (原创 2016-09-01 10:55:30 · 493 阅读 · 0 评论 -
【华为OJ】百钱买百鸡问题
鸡翁一值钱伍,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?输入:随便输入一个整数输出:鸡翁、鸡母、鸡雏的数量#includeusing namespace std; int main(){ int n; cin >> n; int x, y, z; for (x = 0;x < 21;x++) { for (y = 0;y < 34;y++)原创 2016-09-03 00:29:47 · 402 阅读 · 0 评论 -
【华为OJ】查找组成偶数最接近的两个素数
输入:偶数输出:两个和为输入值的最相近的两个素数#includeusing namespace std;bool isprime(int num){ if (num == 2) return true; else if (num > 2) { for (int i = 2;i < num;i++) { if (num%i == 0)return原创 2016-09-02 23:59:01 · 286 阅读 · 0 评论 -
【华为OJ】超长正整数相加
输入:两个超长正整数 (string类型)输出:两数之和#include#includeusing namespace std;int main(){ string str1,str2,addend,augend; int str3[1000]; cin >> str1>>str2; int length1 = str1.size(); int length2原创 2016-09-02 20:49:39 · 475 阅读 · 0 评论 -
【华为OJ】查找整数二进制中1的个数
#includeusing namespace std;int main(){ int n; cin >> n; int count = 0; if (n > 0) { while (n) { if (n % 2 != 0) count++; n = n / 2; } cout << count; } else if (n < 0) {原创 2016-09-02 18:47:48 · 244 阅读 · 0 评论 -
【华为OJ】求最小公倍数
求两个正整数的公倍数#include using namespace std;int main(){ int a, b; cin >> a >> b; for (int m = 1;m <= b;m++) { if (m*a%b == 0) { cout << m*a; break; } } return 0;}原创 2016-08-31 21:15:47 · 240 阅读 · 0 评论 -
【华为OJ】取近似值
【初级】取近似值 注意正负数分类#include using namespace std;int main(){float n;cin >> n;if (n > 0){if ((n - (int)n) * 2 cout elsecout }else{if (((int)n-n) * 2 cout els原创 2016-08-31 19:24:50 · 236 阅读 · 0 评论 -
【华为OJ】进制转换
16进制输入,10进制输出#include using namespace std;int main(){ int n; cin >> hex>>n; cout << n << endl; return 0;}原创 2016-08-31 20:32:18 · 390 阅读 · 0 评论 -
【华为OJ】寻找等差数列
今天看来华为在机试啊,一直刷不出成绩,在本地编译器通过了,先记录下吧~输入:m n输出:[m,n]区间内的包含最多素数的等差数列#include #include#include#includeusing namespace std;bool isPrime(int a){ if (a == 2)return 1; else if (a > 2) { for原创 2016-09-07 10:54:30 · 717 阅读 · 0 评论 -
【华为OJ】在字符串中找出连续最长的数字串
描述样例输出输出123058789,函数返回值9输出54761,函数返回值5 接口说明函数原型: unsignedint Continumax(char** pOutputstr, char* intputstr)输入参数: char* intputstr 输入字符串;输出参数: char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返原创 2016-09-06 20:27:55 · 621 阅读 · 0 评论 -
【华为OJ】合法IP
判断输入的ipv4地址是否合法#include #includeusing namespace std;int main(){ char str[100]; int a[4]; if (scanf_s("%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3])) { for (int i = 0;i < 4;i++) {原创 2016-09-06 20:24:22 · 292 阅读 · 0 评论 -
【华为OJ】求最大连续bit数
输入一个1字节长度的整型数,输出将其转换成二进制后的连续1的个数#include #includeusing namespace std;bool cmp(int a, int b){ return a > b;}int main(){ int n,i=0; cin >> n; int count[100] = { 0 }; if (n == 0) co原创 2016-09-06 17:31:22 · 280 阅读 · 0 评论 -
【华为OJ】计算字符串的相似度
描述对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下:1 修改一个字符,如把“a”替换为“b”。2 增加一个字符,如把“abdd”变为“aebdd”。3 删除一个字符,如把“travelling”变为“traveling”。比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加和减少一个“g转载 2016-09-06 14:51:02 · 316 阅读 · 0 评论 -
【华为OJ】字符逆序
将一串包含空格的字符逆序输出#include using namespace std;int main(){ char a[100]; gets_s(a); for (int i = 0;i < strlen(a);i++) { cout << a[strlen(a)-1 - i]; } return 0;}原创 2016-08-31 21:51:06 · 228 阅读 · 0 评论 -
【华为OJ】计算字符个数
输入:一串字符(含空格) 一个字符输出:该字符在字符串中出现的次数#include #include using namespace std;int main(){ char str[100]; char m; int count = 0; gets_s(str); cin >> m; for (int i = 0;i < 100;i++) { if (原创 2016-08-31 21:07:39 · 215 阅读 · 0 评论 -
【华为OJ】明明的随机数
输入:数组的元素个数 元素输出:去重 升序输出 换行因为刚刚学习用STL的map,因此这道题也用了map练习,map对于去重、升序还是挺好用的#include #include using namespace std;int main(){ int n; cin >> n; mapm; int arr[100]; for (int i = 0;i < n;i+原创 2016-08-31 20:51:01 · 406 阅读 · 0 评论 -
【华为OJ】输入n个整数,输出其中最小的k个
输入:n k n个元素的整数数组输出:最小的k个整数#include#include#includeusing namespace std;int main(){ int n, k; cin>>n>>k; int a; vectorvec; for (int i = 0;i < n;i++) { cin >> a; vec.push_back(a);原创 2016-09-02 14:50:12 · 243 阅读 · 0 评论 -
【华为OJ】iNOC产品部--完全数计算
问题描述:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。给定函数count(int n),用于计算n以内(含n)完全数的个数。计算范围, 0 返回n以内完全数的个数。异常情况返回-1原创 2016-09-02 09:47:14 · 232 阅读 · 0 评论 -
【华为OJ】放苹果
将M个苹果放在N个盘子里,允许有空盘,但1,5,5和5,5,1视作一种方法输入:苹果数 盘子数 输出:一共可以排放的方法#include using namespace std;int cal(int m, int n){ if (m < 0) return 0; else if (m == 0 || n == 1) return 1; els转载 2016-09-03 13:29:20 · 419 阅读 · 0 评论 -
【华为OJ】字符串匹配
输入:短字符串 长字符串输出:如果短字符串中的字符在长字符串中都能找到,则输出true;否则输出false。#include #include using namespace std;int main(){ string sho,lo; cin >> sho>>lo; int length1 = sho.size(); int length2 = lo.size原创 2016-09-03 13:50:36 · 305 阅读 · 0 评论 -
【华为OJ】密码强度等级
描述密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母 三、数字:原创 2016-09-04 17:05:30 · 556 阅读 · 0 评论 -
【华为OJ】查找兄弟单词(未通过)
描述题目描述 知识点查找运行时间限制10M内存限制128输入先输入字典中单词的个数,再输入n个单词作为字典单词。输入一个单词,查找其在字典中兄弟单词的个数再输入数字n输出根据输入,输出查找到的兄弟单词的个数输出指定的第n个兄弟单词原创 2016-09-15 21:22:11 · 282 阅读 · 0 评论 -
【华为OJ】201301 JAVA题目0-1级
输入:待输入整数的个数 整数数组要求:将输入的整数分为和相同的两组,其中5的倍数的数放在一组,3的倍数(非5的倍数)的在另一组输出:若能够分组,输出true 若不能,输出false#include#include#includeusing namespace std;void inc(int* mark, int len);bool canFind(int *list, i转载 2016-09-14 17:28:27 · 571 阅读 · 0 评论 -
【华为OJ】汽水瓶
每三个空瓶换一瓶汽水,求小明最多能喝多少瓶汽水输入:多行数据(不超过10行) 每行代表小明手里的空瓶数n 默认n=0时代表输入结束(系统测试数据默认格式)输出:每行对应的能喝到的最多瓶汽水#includeusing namespace std;int main(){ int num[10] = {0}; int j = 0; int n; do { cin原创 2016-09-10 19:49:13 · 345 阅读 · 0 评论 -
【华为OJ】删除字符串中出现次数最少的字符
输入:长度不超过20的字符串,且都是小写输入 删除出现次数最少的字符 若最少次数的不止一个字符,则都删除输出:按原来字符串的顺序删除后输出例:输入:abcdd输出:dd#include#include#include#include#includeusing namespace std;struct zifu{ int count; char a;};原创 2016-09-10 18:59:45 · 307 阅读 · 0 评论 -
【华为OJ】简单密码破解
写得比较。。。#include #include using namespace std;int main(){ string str1; cin >> str1; int length = str1.size(); char *str2 = new char[length]; for (int i = 0;i < length;i++) { if( str1[i]原创 2016-09-09 11:53:25 · 615 阅读 · 0 评论 -
【华为OJ】iNOC产品部-杨辉三角的变形
描述 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-09-03 12:36:30 · 199 阅读 · 0 评论 -
【华为OJ】公共字符字串计算
描述:计算两个字符串的最大公共字串的长度,字符不区分大小写输入:两个字符串输出:最长公共子串的长度例:输入:asdfas werasdfaswe 输出:6#include#include#includeusing namespace std;int main(){ int length1,length2,count=0; string s1, s原创 2016-09-03 10:50:21 · 386 阅读 · 0 评论 -
【华为OJ】输出单向链表中倒数第k个结点
输入:要输出整数的个数 整数数组 k值输出:倒数第k个结点说明:数组的最后一个数属于倒数第0个数#include#includeusing namespace std;int main(){ int num,a,mark; vectorvec; cin >> num; for (int i = 0;i < num;i++) { cin >> a;原创 2016-09-03 09:10:20 · 212 阅读 · 0 评论 -
【华为OJ】统计大写字母个数
输入:字符串输出:大写字母的个数#include#includeusing namespace std;int main(){ string str; getline(cin,str); int count = 0; if (str == "") cout << 0<<endl; else { for (int i = 0;i < str.size();i原创 2016-09-02 08:36:49 · 323 阅读 · 0 评论 -
【华为OJ】表示数字
输入:字符串输出:数字前后加*如:输入:sfadf5678sdfm12w3o输出:sfadf*5678*sdfm*12*w*3*#include using namespace std;int main(){ char str[100]; gets_s(str); if (str[0] >= '0'&&str[0] <= '9') { cout <<原创 2016-09-01 15:16:50 · 239 阅读 · 0 评论 -
【华为OJ】记负均正
输入:整数个数n n个整数输出:整数中负数的个数 正整数的均数#include #includeusing namespace std;int main(){ int n,nega=0,posi=0,total=0; cin >> n; int* ARR =new int[n]; for (int i = 0;i < n;i++) { cin >> ARR[i]原创 2016-09-01 14:04:38 · 298 阅读 · 0 评论 -
【华为OJ】计票系统
输入:第一行 候选人人数 第二行 候选人字符 第三行 投票人数 第四行 投票字符串输出:候选人 : 得票数(换行)注意这里的冒号前后都要有空格才能通过OJ系统 最后一行为invalid :票数#include#includeusing namespace std;int ma原创 2016-09-01 16:14:49 · 319 阅读 · 0 评论 -
【华为OJ】矩阵乘法
输入:第一个矩阵的行数;第一个矩阵的列数(第二个矩阵的行数);第二个矩阵的列数输出:相乘后的矩阵#includeusing namespace std;int main(){ int col1,row1,col2; cin>>row1>>col1>>col2; int a[100][100], b[100][100],m[100][100]; for (int i = 0;原创 2016-09-02 16:31:26 · 334 阅读 · 0 评论 -
【华为OJ】整形数组合并
输入:第一个数组个数 第一个数组数值 第二个数组个数 第二个数组数值输出:两个数组合并(去掉重复数字)后升序输出#include#includeusing namespace std;int main(){ int arr1_n,arr2_n,a; cin >> arr1_n; mapm; map::iterator p; for (int i = 0;i原创 2016-09-03 01:46:51 · 366 阅读 · 0 评论 -
【华为OJ】尼科彻斯定理
尼科彻斯定理:任何一个立方数都可以表示成底数个数的连续奇数之和输入:底数输出:连续奇数相加的字符串表达形式#includeusing namespace std;int main(){ int n; cin >> n; int cube = n*n*n; int aver = cube / n; if (n % 2 == 1) { for (int i原创 2016-09-03 02:16:52 · 296 阅读 · 0 评论