PTA 7-14 sdut-数据类型-2 应用勾股定理,了解世界灿烂文明分数 10

意义:勾股定理是历史上第一个把数与形联系起来的定理,导致了无理数的发现,引起第一次数学危机,大大加深了人们对数的理解。勾股定理是欧氏几何的基础定理,不仅在几何学中是一颗光彩夺目的明珠,被誉为“几何学的基石”,而且在高等数学和其他科学领域也有着广泛的应用。1971年5月15日,尼加拉瓜发行了一套题为“改变世界面貌的十个数学公式”邮票,这十个数学公式由著名数学家选出的,勾股定理是其中之首。

简史:在中国,公元前十一世纪,数学家商高(西周初年人)就提出“勾三、股四、弦五”。编写于公元前一世纪以前的《周髀算经》中记录着商高与周公的一段对话。商高说:“……故折矩,勾广三,股修四,经隅五。”意为:当直角三角形的两条直角边分别为3(勾)和4(股)时,径隅(弦)则为5。以后人们就简单地把这个事实说成“勾三股四弦五”,根据该典故称勾股定理为商高定理。

公元三世纪,三国时代的赵爽对《周髀算经》内的勾股定理作出了详细注释,记录于《九章算术》中“勾股各自乘,并而开方除之,即弦”,赵爽创制了一幅“勾股圆方图”,用数形结合得到方法,给出了勾股定理的详细证明。后刘徽在刘徽注中亦证明了勾股定理。

在中国清朝末年,数学家华蘅芳提出了二十多种对于勾股定理证法。

在国外,远在公元前约三千年的古巴比伦人就知道和应用勾股定理,他们还知道许多勾股数组。美国哥伦比亚大学图书馆内收藏着一块编号为“普林顿322”的古巴比伦泥板,上面就记载了很多勾股数。古埃及人在建筑宏伟的金字塔和测量尼罗河泛滥后的土地时,也应用过勾股定理。

公元前六世纪,希腊数学家毕达哥拉斯证明了勾股定理,因而西方人都习惯地称这个定理为毕达哥拉斯定理。

公元前4世纪,希腊数学家欧几里得在《几何原本》中给出一个证明。

1940年《毕达哥拉斯命题》出版,收集了367种不同的证法。

定义:在平面上的一个直角三角形中,两个直角边边长的平方加起来等于斜边长的平方。如果设直角三角形的两条直角边长度分别是和,斜边长度是,那么可以用数学语言表达:a2+b2=c2

请编程程序,实现如下功能:输入直接三角形的两个直角边的边长,求它们的斜边边长,结果保留2位小数。

提示:在Java中利用Math类的方法——**Math.sqrt()**求平方根。

java.lang.Math.sqrt(double a) 返回一个double值的正平方根。

输入格式:

输入有若干行,每行有2个数值,分别表示直角三角形的两个直角边长度,用空格分隔。

输出格式:

对应每行输入数据,输出直角三角形的斜边长度,结果保留2位小数。

输入样例:

 3 4
 2.3 3
 5 6
 10 12

输出样例:

在这里给出相应的输出。例如:

5.00
3.78
7.81
15.62

代码长度限制16 KB

时间限制400 ms

内存限制64 MB

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            double x = sc.nextDouble();
            double y = sc.nextDouble();
            double z = Math.pow(x,2) + Math.pow(y,2);
            System.out.printf("%.2f\n",Math.sqrt(z));
        }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这是一道关于分数四则运算的题目,需要使用面向对象编程的思想来解决。具体来说,需要定义一个分数类,包含分子和分母两个属性,以及加、减、乘、除四个方法,用于实现分数的四则运算。在进行运算时,需要先将两个分数化为通分,然后再进行相应的运算,最后将结果化简为最简分数。 ### 回答2: 在一个分数类中,我们需要定义分数的四个基本运算:加、减、乘、除。这里我们可以使用类的方式来实现这些运算。 首先,我们要定义一个分数类,其中包含两个变量,分别表示分子和分母,同时也需要定义一个初始化函数用来初始化这两个变量。 在加法运算中,我们需要将两个分数相加,得到一个新的分数结果。因此,我们需要定义一个“+”函数,将两个分数对象作为参数传入,然后使用公式计算得到新分子和新分母。 class Fraction: def __init__(self, numerator, denominator): self.numerator = numerator self.denominator = denominator def __add__(self, other): numerator = self.numerator*other.denominator + other.numerator*self.denominator denominator = self.denominator*other.denominator return Fraction(numerator, denominator) 在减法运算中,我们需要将两个分数相减,同样使用公式计算出新分子和新分母,然后返回一个新的分数对象。 def __sub__(self, other): numerator = self.numerator*other.denominator - other.numerator*self.denominator denominator = self.denominator*other.denominator return Fraction(numerator, denominator) 在乘法运算中,我们需要将两个分数相乘,同样使用公式计算出新分子和新分母,然后返回一个新的分数对象。 def __mul__(self, other): numerator = self.numerator*other.numerator denominator = self.denominator*other.denominator return Fraction(numerator, denominator) 在除法运算中,我们需要将两个分数相除,这里需要注意的是,当除数为0时,我们需要抛出一个异常,而当除数不为0时,同样使用公式计算出新分子和新分母,然后返回一个新的分数对象。 def __div__(self, other): if other.numerator == 0: raise ZeroDivisionError("division by zero") numerator = self.numerator*other.denominator denominator = self.denominator*other.numerator return Fraction(numerator, denominator) 最后,我们可以创建两个分数对象,然后对它们进行四则运算。 fraction1 = Fraction(2, 3) fraction2 = Fraction(1, 4) result1 = fraction1 + fraction2 result2 = fraction1 - fraction2 result3 = fraction1 * fraction2 result4 = fraction1 / fraction2 print(result1.numerator, result1.denominator) # 11 12 print(result2.numerator, result2.denominator) # 5 12 print(result3.numerator, result3.denominator) # 1 6 print(result4.numerator, result4.denominator) # 8 3 ### 回答3: 本题的主要难点在于实现分数的四则运算,并且要使用面向对象的方式。 首先,我们可以定义一个Fraction类,其中包括分子和分母两个属性。在该类中,我们需要定义以下方法: 1. __init__方法,用于初始化分数。 2. __str__方法,用于将分数以字符串的形式输出。 3. __add__方法,用于实现分数的加法。 4. __sub__方法,用于实现分数的减法。 5. __mul__方法,用于实现分数的乘法。 6. __truediv__方法,用于实现分数的除法。 具体实现如下: ```python class Fraction: def __init__(self, numerator, denominator): self.numerator = numerator self.denominator = denominator def __str__(self): return "%d/%d" % (self.numerator, self.denominator) def __add__(self, other): return Fraction(self.numerator * other.denominator + other.numerator * self.denominator, self.denominator * other.denominator).simplify() def __sub__(self, other): return Fraction(self.numerator * other.denominator - other.numerator * self.denominator, self.denominator * other.denominator).simplify() def __mul__(self, other): return Fraction(self.numerator * other.numerator, self.denominator * other.denominator).simplify() def __truediv__(self, other): return Fraction(self.numerator * other.denominator, self.denominator * other.numerator).simplify() def simplify(self): """约分分数""" if self.numerator == 0: return Fraction(0, 1) gcd = self._gcd(self.numerator, self.denominator) return Fraction(self.numerator // gcd, self.denominator // gcd) def _gcd(self, a, b): """计算最大公约数""" if a % b == 0: return b else: return self._gcd(b, a % b) ``` 上述代码中,我们使用了__add__、__sub__、__mul__和__truediv__这些魔法方法来分别实现加法、减法、乘法和除法,使用了_simplify方法来约分分数。其中,__truediv__方法对应的是普通除法,而不是整除除法(符号为//)。此外,我们在构造函数__init__中初始化了分子和分母两个属性,并定义了一个__str__方法来将分数以字符串的形式输出。 通过上述代码,我们就可以对分数进行四则运算了。例如: ```python # 5/6 + 3/4 f1 = Fraction(5, 6) f2 = Fraction(3, 4) print(f1 + f2) # 19/12 # 5/6 - 3/4 print(f1 - f2) # 1/12 # 5/6 * 3/4 print(f1 * f2) # 5/8 # 5/6 / 3/4 print(f1 / f2) # 10/9 ``` 最终,通过以上过程,我们已经成功实现了分数四则运算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不再言语

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

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

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

打赏作者

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

抵扣说明:

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

余额充值