输入一组勾股数 a,b,c(a≠b≠c),用分数格式输出其较小锐角的正弦值。
(要求约分。
)
输入格式一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。
一行,包含一个分数,即较小锐角的正弦值
输入输出样例输入 #1
3 5 4
输出 #1
3/5说明/提示
数据保证:a,b,c 为正整数且∈[1,10⁹]。
解题:
^v^水一道题,初中的直角三角形,最短边比斜边就是最小锐角的正弦值了,也就是题目里的最小值比最大值,可以用数组依次输入,便于找最大最小值。
因为最后输出是要求约分的,所以可以写一个算最大公约数的函数:
int gyins(int a, int b){
int t = b;
while (a % b != 0)
{
t = a % b;
a = b;
b = t;
}
return t;
}
AC代码:
#include
using namespace std;
int gyins(int a, int b){
int t = b;
while (a % b != 0)
{
t = a % b;
a = b;
b = t;
}
return t;
}
int main(){
int a[10];
for (int i = 0; i < 3; i++)
{
cin >> a[i];
}
int max = 0, min = 1000000000;
for (int i = 0; i < 3; i++)
{
//找到最大的值
if(a[i] > max){
max = a[i];
}
//找到最小的值
if(a[i] < min){
min = a[i];
}
}
int y = gyins(max, min);
cout << min / y << "/" << max / y;
return 0;
}
这是很简单的方法,当然也有更好的,待发掘……
题目来源:洛谷
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)