信息奥赛辅导:内切圆面积与高精度加法

需积分: 14 1 下载量 4 浏览量 更新于2024-07-14 收藏 1.26MB PPT 举报
"信息奥赛基础讲解,包括三角形内切圆面积计算及二进制转换与高精度加法" 在信息学奥赛中,掌握基础的数学和算法知识至关重要。这里有两个主要的知识点,一是如何计算三角形内切圆的面积,二是如何进行二进制数的转换和高精度加法。 首先,我们来看如何计算三角形内切圆的面积。给定三角形的三边长度a、b、c,满足三角形的不等式条件:a+b>c,b+c>a,c+a>b。根据海伦公式,可以先计算三角形的半周长p=(a+b+c)/2,然后利用内切圆半径r与三角形面积S的关系公式:S = p * r。其中,S可以通过海伦公式计算得到,即S = sqrt[p*(p-a)*(p-b)*(p-c)]。因此,内切圆的面积是π * r²,而r可以用公式r = 2 * S / (a + b + c)求得。所以,对于输入样例中的3 4 5,我们可以先计算半周长,然后找到内切圆半径,最后计算面积并四舍五入到小数点后两位,即3.14。 接下来,我们转向二进制转换的话题。将十进制数转换为二进制数通常采用除二取余法。以一个十进制自然数n为例,我们不断将n除以2,取余数,直至n变为0。每次得到的余数按逆序排列,即构成了n的二进制表示。在给出的代码段中,数组b用于存储余数,按照b[n]、b[n-1]...b[1]、b[0]的顺序输出,就能得到二进制数。在循环中,当n不等于0时,执行取余操作n mod 2并将结果存入b[i],同时更新n为n div 2(向下取整)。最后,从b数组的最高位b[i-1]开始输出,直到b[0]。 此外,代码还展示了高精度加法的过程。高精度加法处理的是超过标准整型范围的大整数相加。这里,使用字符串str1和str2表示两个待加的数,将它们转化为数组a和b,数组的每一位对应一个数字。通过遍历数组,逐位相加,并处理进位。如果某位相加结果大于等于10,则需要向高位进位,并更新该位的值。完成所有位的加法后,从高位到低位输出数组a的非零元素,即为最终的加法结果。 信息学奥赛的基础知识涵盖了数学和算法两大部分,对于三角形内切圆的面积计算,需要理解几何性质和海伦公式;而对于二进制转换和高精度加法,则需要熟悉位运算和数组处理技巧。这些知识是解决竞赛问题的基础,对于参赛者来说至关重要。