洛谷——P1888 三角函数

该博客介绍了一段C++代码,用于读取一组勾股数并计算其中较小锐角的正弦值,结果以分数格式输出并进行了约分。输入包括三个正整数,代码通过找到最小值和最大值,然后求最大公约数进行约分,以确保输出正确格式的正弦值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:来源于洛谷
输入一组勾股数 a,b,c(a ≠ b ≠ c),用分数格式输出其较小锐角的正弦值。(要求约分。)

输入格式
一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。

输出格式
一行,包含一个分数,即较小锐角的正弦值

输入输出样例
输入 #1

3 5 4

输出 #1

3/5

分析:
注意审题,结果需要约分

代码如下:

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;	

#define ll long long

int num,minn=1e9+1,maxn=0;

//求最大公约数
int gcd(int a, int b) {
	if (b==0) {
		return a;
	}
	else {
		return gcd(b, a%b);
	}
}

int main()
{
	for (int i = 0; i < 3; i++) {
		scanf("%d", &num);
		minn = min(minn, num);
		maxn = max(maxn, num);
	}
	int m = gcd(minn, maxn);
	printf("%d/%d", minn / m, maxn / m);
	return 0;
}

(●ˇ∀ˇ●)

### C语言中实现三角函数 在C语言中,可以通过自定义函数来实现常见的三角函数,如正弦(sin)、余弦(cos)等。下面将以`mySin`为例展示如何编写一个近似计算正弦值的程序[^3]。 #### 自定义 `mySin` 函数 为了提高精度并减少误差,在这里采用泰勒级数展开的方式来逼近真实值: \[ \sin(x)=x-\frac{x^{3}}{3!}+\frac{x^{5}}{5!}-\cdots \] ```c #include <stdio.h> #include <math.h> // 计算阶乘辅助函数 long long factorial(int n){ if (n==0 || n==1) return 1; else return n*factorial(n-1); } double mySin(double x, int terms){ // 参数terms表示要使用的项数 double sum=0.0; for(int i=0;i<terms;i++){ sum+=pow(-1,i)*pow(x,(2*i)+1)/factorial((2*i)+1); } return sum; } ``` 此段代码实现了基于泰勒公式的简单版本的`mySin`函数,其中包含了两个部分:一个是用于求解阶乘的帮助函数;另一个则是核心逻辑所在之处——利用循环累加每一项直到指定次数为止。 #### 主函数测试 接下来是在主函数里调用上述方法,并打印出结果以及比较内置的标准库函数的结果: ```c int main(){ double angle; printf("请输入角度(弧度制):%lf\n",angle); scanf("%lf",&angle); double mysin_result=mySin(angle,10); // 使用前10项进行估算 double libsinf_result=sin(angle); printf("使用自制函数得到的结果:%f\n",mysin_result); printf("使用标准库函数得到的结果:%f\n",libsinf_result); return 0; } ``` 这段代码展示了如何接收用户的输入作为参数传递给`mySin()`来进行运算,并最终显示两种不同方式下所获得的结果以便于观察差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值