【备战秋招】每日一题:2022.10.9-华为机试-句子的平均重量

为了更好的阅读体检,可以查看我的算法学习网
本题在线评测链接:P1041

题目描述

这是一个小岛上的传统活动,每年夏天居民们会举办一场盛大的比赛,以庆祝丰收和团结精神。比赛的主要环节是选手们轮流背诵他们准备好的一句话,而评判会根据每个句子的平均重量来评分。

今年,比赛的主题是环保,选手们都准备了一些有关环保的话题,其中包括垃圾分类、节能减排等等。为了让比赛更有趣,评委决定对选手们的句子平均重量进行一些特殊的评分规则。

比如,如果选手的句子平均重量小于一定值,那么他们会得到额外的分数,反之则会被扣分。选手们都在想着如何利用这些规则来提高自己的得分,他们开始认真地考虑每个单词的长度,并且计算出了自己句子的平均重量。

每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,我们假设每个单词的长度 N i N_i Ni 为该单词的重量,你需要做的就是给出整个句子

的平均重量 V V V

输入只有一行,包含一个字符串 S S S (长度不会超过 100 100 100 ),代表整个句子,句子中只包含大小写的英文字母,每个单词之间有一个空格。

输出句子 S S S 的平均重量 V V V (四舍五入保留两位小数)。

样例

输入

Who Love Solo

输出

3.67

题目思路

只需统计出字母个数和单词个数即可,每个单子以空格分隔,所以遍历字符串每次遇到空格即说明单词数增加

代码

Java代码

import java.util.Scanner;

class Main {
	public static void main(String[] args) {
		String s;
		Scanner scanner = new Scanner(System.in);
		s = scanner.nextLine();
		int num = 0, cnt = 1;//cnt为单词个数,num为字母个数
		for (int i = 0; i < s.length(); i++) {
			if (s.charAt(i) == ' ')
				cnt++;
			else
				num++;
		}
		System.out.printf("%.2f", 1.0 * num / cnt);//输出时注意将int转为double
	}
}

Python代码

s=input()
cnt,num=1,0	#cnt为单词个数,num为字母个数
for i in range(len(s)):
  if (s[i]==' '):cnt=cnt+1
  else: num=num+1
print("%.2f" %(num/cnt))

C++代码

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
	string s;
	getline(cin,s);
	int cnt=1,num=0;	//cnt为单词个数,num为字母个数
	for (int i=0;i<s.size();i++)
	{
		if (s[i]==' ')	cnt++;
		else num++;
	}
	printf("%.2f\n", 1.0*num/cnt);//输出时注意将int转为double
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塔子哥学算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值