其实是一道水题 因为没看到只有一组数据WA了n次 还需要注意一个地方代码标出
#include <iostream>
using namespace std;
/**
分析
每分钟每秒钟6°
一格30° 分针走360° 时针走30°
分针1° 时针1/12°
即分针走1min 时针走 1/2°
秒针走360° 分针走6° 时针30/12°
秒针1° 时针 1/720°
秒针1s 时针 1/120°
秒针1° 分针 1/60° 秒针1s 分针1/10°
**/
int main()
{
int n;
cin>>n;
double h,min,s;
while(n--)
{
cin>>h>>min>>s;
if(h>=12)
h-=12;
min=min*6+s/10;
h=h*30+min/12-min;
if(h<0) //此处一定要先判断h的正负 有一种情况是分针超过时针很多 并且求顺时针夹角大于180°的情况
h=-h;
if(h>180)
h=360-h;
cout<<(int)h<<endl;
}
return 0;
}

本文深入探讨了钟表角度计算的算法原理,包括时、分、秒针之间的相对运动规律,通过数学公式准确计算任意时刻钟表上的角度。特别强调了在处理不同情况时的边界条件处理,确保算法的鲁棒性和准确性。

1720

被折叠的 条评论
为什么被折叠?



