华为OD机试 2025C卷题库疯狂收录中,刷题点这里
专栏导读
本专栏收录于《华为OD机试(JAVA)真题(C卷+A卷+B卷+D卷+E卷)》。
刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。
一、题目描述
每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,我们假设每个单词的长度Ni为该单词的重量,你需要做的就是给出整个句子的平均重量V。
二、输入描述
无
三、输出描述
无
四、测试用例
测试用例1:
1、输入
Who Love Solo
2、输出
3.67
3、说明
Who(3) + Love(4) + Solo(4) = 11,平均值 = 11/3 = 3.67
测试用例2:
1、输入
Hello World
2、输出
5.00
3、说明
Hello(5) + World(5) = 10,平均值 = 10/2 = 5.00
五、解题思路
主要解题思路
- 读取一行输入作为句子
- 将句子按空格分割成单词数组\
- 遍历每个单词,累加所有单词的长度
- 计算平均长度:总长度除以单词数量
- 格式化输出,保留两位小数
六、Java算法源码
public class OdTest {
public static void main(String[] args) {
// 创建Scanner对象用于读取控制台输入
Scanner scanner = new Scanner(System.in);
// 读取整行输入作为句子
String sentence = scanner.nextLine();
// 将句子按空格分割成单词数组
String[] words = sentence.split(" ");
// 计算所有单词的总长度
int totalLength = 0;
for (String word : words) {
totalLength += word.length();
}
// 计算平均长度(单词的平均重量)
double averageWeight = (double) totalLength / words.length;
// 格式化输出,保留两位小数
System.out.printf("%.2f", averageWeight);
// 关闭Scanner
scanner.close();
}
}
七、效果展示
1、输入
I am a student
2、输出
2.75
3、说明
I(1) + am(2) + a(1) + student(7) = 11,平均值 = 11/4 = 2.75
🏆下一篇:华为OD机试 - 简易内存池 - 逻辑分析(Java 2025 C卷 200分)
🏆本文收录于,华为OD机试(JAVA)真题(C卷+A卷+B卷+D卷+E卷)
刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。