【Go语言入门150题】L1-066 猫是液体 (5 分) L1-068 调和平均 (10 分) Go语言 | Golang

427 阅读2分钟

这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战

【题解】【PTA团体程序设计天梯赛】

L1-066 猫是液体 (5 分) Go语言|Golang

测量一个人的体积是很难的,但猫就不一样了。因为猫是液体,所以可以很容易地通过测量一个长方体容器的容积来得到容器里猫的体积。本题就请你完成这个计算。

输入格式:

输入在第一行中给出 3 个不超过 100 的正整数,分别对应容器的长、宽、高。

输出格式:

在一行中输出猫的体积。

输入样例1:

23 15 20

结尾无空行

输出样例1:

6900

结尾无空行

思路:

根据我们中学时代所学过的数学知识可以知道体积=长*宽*高,所以我们可以通过Go语言自带的fmt包中的Scan将这个三个数输入,然后就可以了把这三个数相互乘起来就可以了。

然后我们要注意的是: 这里不能用println,不然会多出一个回车的,所以我们应该要用printf进行输出。

代码如下:

package main

import "fmt"

func main() {
	var a,b,c int
	_,_=fmt.Scan(&a,&b,&c)
	fmt.Printf("%d",a*b*c)
}

【题解】【PTA团体程序设计天梯赛】

L1-068 调和平均 (10 分) Go语言|Golang

N 个正数的算数平均是这些数的和除以 N,它们的调和平均是它们倒数的算数平均的倒数。本题就请你计算给定的一系列正数的调和平均值。

输入格式:

每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数N (≤1000);第 2 行给出 N 个正数,都在区间 [0.1,100]内。

输出格式:

在一行中输出给定数列的调和平均值,输出小数点后2位。

输入样例1:

8
10 15 12.7 0.3 4 13 1 15.6

结尾无空行

输出样例1:

1.61

结尾无空行

思路:

这套题看起来很难,但其实是非常简单的,题目解释如下:

我们可以先定义一个sum变量,注意Go里面的类型是强类型

所以我们一定要定义float64类型的,然后我们通过for循环不断存储输入的十个数,就可以把这几个数的倒数相加起来了。

然后我们需要再次求的平均值,之后我们通过这次的平均数再进行倒数处理即可。

代码如下:

package main

import "fmt"

func main() {
	var N float64
	_,_=fmt.Scan(&N)
	sum:=0.0
	for i:=0;i<int(N);i++{
		var num float64
		_,_=fmt.Scan(&num)
		num = 1/num
		sum+=num
	}
	fmt.Printf("%.2f",N/sum)
}