1. 程式人生 > 程式設計 >使用Python三角函式公式計算三角形的夾角案例

使用Python三角函式公式計算三角形的夾角案例

題目內容:

對於三角形,三邊長分別為a,b,c,給定a和b之間的夾角C,則有:。編寫程式,使得輸入三角形的邊a,c,可求得夾角C(角度值)。

輸入格式:

三條邊a、b、c的長度值,每個值佔一行。

輸出格式:

夾角C的值,保留1位小數。

輸入樣例:

3
4
5

輸出樣例:

90.0

code:

import math
 
a = float(eval(input('請輸入a的邊長')))
b = float(eval(input('請輸入b的邊長')))
c = float(eval(input('請輸入c的邊長')))
print round(math.acos((a*a+b*b-c*c)/(2*a*b))*180/math.pi,1)

這個算小白題了,剛剛接觸Python,第一次提交的時候錯了,要嚴格按題目要求保留一位小數才過的,不能樣例過了就萬事大吉。

補充知識:Python解題-計算sinx

題目

給定一個精度值e,用下列公式計算sin(x)的近似值,要求前後兩次迭代之差的絕對值小於e,給出相應的最小迭代次數n和最後一次計算的sin(x)值。

sin x = x - x3/3! + x5/5! - x7/7! + … + (-1)n-1x2n-1/(2n-1)!

其中x為弧度,n為正整數。

【輸入形式】

從控制檯輸入x( (0<x<=10) )和e( x>e>0 )的值,以一個空格分隔。

【輸出形式】

輸出迭代次數n和最後一次計算的sin(x)的值(以一個空格分隔,並且輸出sin(x)時要求小數點後保留9位有效數字)。

思路

從公式看,每次疊加x^2和(2n-1)*(2n-2),用while來保證精度達標,最後轉換9位小數

程式碼

x,e = input().split()
x = float(x)
e = float(e)
b = x
a = b
sign = 1
x2 = x
jc = 1
sin_x = b
n = 2
while abs(a+b)>e: #一定是絕對值,a,b一正一負所以直接加就是差值
  a = b
  sign *= -1
  x2 *= x * x
  jc *= (2 * n - 1) * (2 * n - 2)
  b = sign * x2 / jc
  sin_x += b
  n += 1
print(n-2)
print("%.9f" % sin_x)

以上這篇使用Python三角函式公式計算三角形的夾角案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。