华为机试题-输出句子的重量

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

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

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

样例
   输入: Who Love Solo
   输出 :3.67

解题思路:

  1. 先将输入的字符串转为字符数组,
  2. 然后遍历累加每个单词的长度,即得到总的权重,再除以数组长度,得到平均权重。
  3. 又因为要保留2位小数,这里借助DecimalFormat类
import java.text.DecimalFormat;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] arr = str.split(" ");
        double weight = 0.0;
        double avgWeight = 0.0;
        for(int i = 0; i < arr.length; i++) {
            weight += arr[i].length();
        }

        avgWeight = (double)weight / arr.length;
        DecimalFormat df = new DecimalFormat("#.00"); // 借助DecimalFormat保留两位小数的做法
        String format = df.format(avgWeight);
        System.out.println(format);
    }
}

posted on 2021-12-21 22:38  健力宝1995  阅读(2972)  评论(0编辑  收藏  举报

导航