https://www.nowcoder.com/ta/huawei

编译器信息
版本:clang++3.9,采用c++11标准,编译的时候采用-O2级优化,支持万能头文件 <bits/stdc++.h>。
输入输出处理
1. 核心代码模式处理
不需要处理任何输入输出,直接返回值即可。
2. ACM 模式
你的代码需要处理输入输出,请使用如下样例代码读取输入和打印输出:
#include <iostream>
using namespace std;int main() {int a, b;while (cin >> a >> b) { // 注意 while 处理多个 casecout << a + b << endl;}
}
// 64 位输出请用 printf("%lld")

文章目录

  • HJ7 取近似值
  • HJ15 求int型正整数在内存中存储时1的个数
  • HJ11 数字颠倒
  • HJ12 字符串反转
  • HJ22 汽水瓶
    • 实质上就是2瓶换1汽水(不包含瓶子)
  • HJ37 统计每个月兔子的总数
    • (找到结论:tuzi(month) = tuzi(month - 1) + tuzi(month - 2))
  • HJ50 四则运算

HJ7 取近似值

描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

输入描述:
输入一个正浮点数值

输出描述:
输出该数值的近似整数值

示例1
输入:5.5
输出:6

#include <stdio.h>
int main(){float num;scanf("%f", &num);printf("%d\n", (int)(num+0.5));return 0;
}

HJ15 求int型正整数在内存中存储时1的个数

描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。

输入描述:
输入一个整数(int类型)

输出描述:
这个数转换成2进制后,输出1的个数

示例1
输入:5
输出:2

#include <stdio.h>
int main(){int num;scanf("%d", &num);int count = 0;while (true){if (num%2==1)count+=1;num=num/2;if(num==0)break;}printf("%d\n", count);return 0;
}

HJ11 数字颠倒

描述
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001

输入描述:
输入一个int整数

输出描述:
将这个整数以字符串的形式逆序输出

示例1
输入:1516000
输出:0006151

#include <stdio.h>void print_num(int* num) {printf("%d", *num % 10);*num /= 10;
}int main() {int num;scanf("%d", &num);do {print_num(&num);} while (num / 10 != 0);print_num(&num);return 0;
}

HJ12 字符串反转

描述
接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

输入描述:
输入一行,为一个只包含小写字母的字符串。

输出描述:
输出该字符串反转后的字符串。

示例1
输入:abcd
输出:dcba

#include <stdio.h>
#include <string.h>int main() {char c[1000] = {0};scanf("%s", &c, sizeof(c));int i = 0;while (strlen(c) - i > 0) {printf("%c", c[strlen(c) - i - 1]);i++;}return 0;
}

HJ22 汽水瓶

描述
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

输入描述:
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。

输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

输入:
3
10
81
0输出:
1
5
40
#include <stdio.h>
#include <string.h>int main() {int array[10] = { 0 };int n = 0, i = 0, len = 0;while (true) {scanf("%d", &n);if (n == 0)break;array[i] = n;i++;len++;}int k = 0;i = 0;while (k < len) {printf("%d\n", array[i] / 2);k++;i++;}return 0;
}

实质上就是2瓶换1汽水(不包含瓶子)

HJ37 统计每个月兔子的总数

(找到结论:tuzi(month) = tuzi(month - 1) + tuzi(month - 2))

描述
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?

本题有多组数据。

输入描述:
输入int型表示month

输出描述:
输出兔子总数int型

示例1
输入:9
输出:34

#include <stdio.h>
#include <string.h>int tuzi(int month) {if (month == 1 or month == 2)return 1;if (month >=3) {int num = 1;int i = 0;while (month - i > 2) {          i++;num += tuzi(i);     }return num;}
}int main() {/*int month = 0;scanf_s("%d", &month);printf("%d\n", tuzi(month));return 0;*/int month = 0;while (true) {scanf_s("%d", &month);printf("%d\n", tuzi(month));}return 0;
}

结果:

1
1
2
1
3
2
4
3
5
5
6
8
7
13
8
21
9
34

额,,,,跑不过,说我复杂度太大了。。。。也是

运行超时
运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。
答案错误
运行时间
1001ms
占用内存
0KB

找到结论:tuzi(month) = tuzi(month - 1) + tuzi(month - 2)

#include <stdio.h>
#include <string.h>int tuzi(int month) {if (month == 1 or month == 2)return 1;if (month >=3) {return tuzi(month - 1) + tuzi(month - 2);}
}int main() {int month = 0;scanf("%d", &month);printf("%d\n", tuzi(month));return 0;
}

还是不行?不支持批量验证??

那改成这样就好了

#include <stdio.h>
#include <string.h>int tuzi(int month) {if (month == 1 or month == 2)return 1;if (month >=3) {return tuzi(month - 1) + tuzi(month - 2);}
}int main() {int month = 0;while(scanf("%d", &month)!=EOF){printf("%d\n", tuzi(month));}return 0;
}

HJ50 四则运算

描述
输入一个表达式(用字符串表示),求这个表达式的值。
保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。

输入描述:
输入一个算术表达式

输出描述:
得到计算结果

示例1
输入:3+2*{1+2*[-4/(8-6)+7]}
输出:25

牛客 华为机试(我的代码记录)相关推荐

  1. 牛客华为机试-查找排序

    前言:java编写,代码尽可能带注释,部分题目附上解题思路.力求方便,所以不写如有错误,请指出,谢谢. 查找排序 1.百钱买百鸡问题 2.统计每个月兔子总数 3.查找组成一个偶数最接近的两个素数 4. ...

  2. 牛客华为机试第8题python

    题目描述 数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个数 然后输入成对的 ...

  3. 牛客华为机试第7题python

    题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述: 输入一个正浮点数值 输出描述: 输出该数值的近似整数值 示例 ...

  4. 牛客华为机试第6题python

    题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 ) 最后一个数后面也要有空格 输入描述: 输入一个long型整数 输出描述 ...

  5. 牛客华为机试第5题python

    题目描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. 输入描述: 输入一个十六进制的数值字符串.注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder ...

  6. 牛客华为机试第4题python

    题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入多次,每个字符串长度小于1 ...

  7. 牛客华为机试第3题python

    题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对 ...

  8. 牛客华为机试第2题python

    题目描述 写出一个程序,接受一个由字母.数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数.不区分大小写. 输入描述: 第一行输入一个由字母和数字以及空格组成的字符串,第二行输入 ...

  9. 牛客华为机试第1题python

    题目描述 计算字符串最后一个单词的长度,单词以空格隔开. 输入描述: 输入一行,代表要计算的字符串,非空,长度小于5000. 输出描述: 输出一个整数,表示输入字符串最后一个单词的长度. 示例1 输入 ...

最新文章

  1. 用于计算无线充电中LCC补偿网络器件参数的小程序
  2. Python 技术篇-将python项目打包成exe独立运行程序,pyinstaller库打包python代码实例演示
  3. 另一个程序正在使用此文件 进程无法访问 iis
  4. kibana操作elasticsearch:创建索引库
  5. 公平锁的lock()方法走读
  6. 多元高斯分布(Multivariate Gaussian Distribution)
  7. 從三種方式看SQL的使用程度
  8. linux日常笔记5
  9. iframe 滚动条不显示_HTML基础教程:Iframe的用法
  10. 没有信号无服务器,没有信号不用怕“音离”你身边的便携式基站
  11. 计算机类专业权威解读,09计算机考研统考大纲权威解读之操作系统
  12. RVC使用指南(四)-集群状况
  13. 用一个小的例子来说明为什么TCP采用三次握手才能保证连接成功
  14. Python程序设计语言基础02:Python基本图形绘制
  15. 常用编程语言介绍和特点
  16. Mac不用Boot Camp 安装双系统
  17. 将本地项目上传到码云仓库
  18. MiCT: Mixed 3D/2D convolutional tube for human action recognition
  19. Python爬虫(4)网页信息
  20. mysqlbinlog恢复mysql表数据

热门文章

  1. 转 C# 串口编程遇到的问题以及解决方法
  2. oracle级联备库创建,ORACLE 11G 备库传备库级联传递(cascade dg) 的配置方法
  3. python pipeline框架_Python爬虫从入门到放弃(十六)之 Scrapy框架中Item Pipeline用法...
  4. 【学习笔记】28、类的方法及参数介绍
  5. 释疑の资源短缺DATASET_CANT_CLOSE
  6. FICO 最常用配置表
  7. 有关SAP中的批次管理
  8. 修改ALSM_EXCEL_TO_INTERNAL_TABLE的限制
  9. 数据库密码过期 怎么修改
  10. SAP ECC6.0内存参数调整和调优