华为机试
华为机试9.17下午两点在大活开了华为宣讲会,鉴于简历已投,又不是现场笔试就没有跟过去听,xx和oo去了,xx还抽了个三等奖,貌似是什么上网设备,没搞清楚什么东西。
9.18半夜两点多收到邀请机试的短信,幸亏早上起得早,还好没错过。10:00开始的机试,一共四道题,只需做三道。题目很简单,相信只要学过编程的人都会做,只是输入输出比较变态,多试几次就会通过。
做的过程中需要注意:若用java语言,则类名必须为Main
题目 A: 首字母大写
时间限制:
10 Sec 内存限制:
128 MB
提交:
623 解决:
101
[提交
][状态
][讨论版
]
题目描述
请编写一个main函数,它的功能是:将字符串中的所有单词的首字母改为大写,字符串中以空格分割各个单词,其他字符不变。
输入
一个字符串。
输出
所有单词的首字母改为大写的字符串。
样例输入
this is a Dog.
样例输出
This Is A Dog.
提示
注意代码规范性。
地区
西安研究所
产品线
公共
阶段
招聘
难度
1级
答案
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Main m = new Main();
Scanner sca = new Scanner(System.in);//注意java获取输入的方式
String s = sca.nextLine();//获取一行
String r = m.change(s);
System.out.println(r);
}
public String change(String s){
char[] s1 = s.toCharArray();
for(int i = 0; i < s1.length; i ++){
if(i == 0){
if(s1 >= 'a' && s1 <= 'z'){
s1 -= 32;//小写字符转为大写字符需要-32并强制类型转换为char
}
}
if(s1 == ' '){
if(s1 >= 'a' && s1 <= 'z'){
s1 -= 32;
}
}
}
return new String(s1);
}
}
题目 B: 统计出现最多的数字
时间限制:
1 Sec 内存限制:
128 MB
提交:
931 解决:
156
[提交
][状态
][讨论版
]
题目描述
输入一个长度小于等于256,大于0,且只包含数字的字符串,统计其中出现最多数字的个数。
输出该数字及个数做成的字符串,格式:"数字+逗号+个数"。
输入
输入一个长度小于等于256,大于0,且只包含数字的字符串
输出
输出该数字及个数做成的字符串,格式:"数字+逗号+个数"。注意逗号为英文半角
样例输入
463618964
样例输出
6,3
提示
地区
西安研究所
产品线
公共
阶段
招聘
难度
2级
答案
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Main m = new Main();
Scanner sca = new Scanner(System.in);
String s = sca.next();
String r = m.getR(s);
System.out.println(r);
}
public String getR(String s){
char[] s1 = s.toCharArray();
int count = 1;
int max = 0;
int pos = 0;
for(int i = 0; i < s1.length; i ++){
count = 1;
for(int j = i + 1; j < s1.length; j ++){
if(s1 == s1){
count ++;
}
}
if(max < count){
max = count;
pos = s1 - '0'; //字符转为int需要-48或者-'0'
}
}
String s2 = String.valueOf(pos) + "," + String.valueOf(max);
return s2;
}
}
题目 C: 挑7
时间限制:
1 Sec 内存限制:
128 MB
提交:
542 解决:
85
[提交
][状态
][讨论版
]
题目描述
输出7和7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数
输入
一个整数N。(N不大于30000)
输出
不大于N的与7有关的数字个数。
样例输入
20
样例输出
3
提示
只需要输出满足条件的数字的个数,不需要将这些数字输出
地区
西安研究所
产品线
公共
阶段
招聘
难度
1级
答案
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Main m = new Main();
Scanner sca = new Scanner(System.in);
int n = sca.nextInt();
int r = m.getR(n);
System.out.println(r);
}
public int getR(int n){
int count = 0;
String s = null;
for(int i = 1; i <= n; i ++){
if(i % 7 == 0){
count ++;
}else{
s = String.valueOf(i);
if(s.contains("7")){
count ++;
}
}
}
return count;
}
}
题目 D: 统计大于均值的数字个数
时间限制:
10 Sec 内存限制:
128 MB
提交:
2212 解决:
392
[提交
][状态
][讨论版
]
题目描述
编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素的个数并返回。
要求实现函数: int GetByondAvgNumber(int iArray[], int iLen);
输入
int GetByondAvgNumber(int iArray[], int iLen) 【输入】iArray:整数数组,空间已经开辟好;iLen:数组长度
输出
大于等于所有元素平均值的元素的个数
样例输入
1,2,3,4,5
样例输出
3
提示
只需要完成该函数功能算法,中间不需要有任何IO的输入输出提示。请提交完整代码。
地区
北京研究所
产品线
公共
阶段
招聘
难度
1级
答案:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Main m= new Main();
int[] iArray = {1, 2, 3, 4, 5};
int iLen = iArray.length;
int a = m.GetByondAvgNumber(iArray, iLen);
System.out.println(a);
}
int GetByondAvgNumber(int iArray[], int iLen){
int sum = 0;
double avg = 0;
int count = 0;
if(iArray != null){
for(int i = 0; i < iLen; i ++){
sum += iArray;
}
avg = (double)sum/iLen;
for(int i = 0; i < iLen; i ++){
if(iArray >= avg){
count ++;
}
}
}
return count;
}
}
页:
[1]