专栏文章

题解:P2433 【深基1-2】小学数学 N 合一

P2433题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipcwiaq
此快照首次捕获于
2025/12/03 09:56
3 个月前
此快照最后确认于
2025/12/03 09:56
3 个月前
查看原文
这是一篇整活题解
众所周知
limx0sinxx=1\lim_{x\rightarrow0} \frac{\sin x}{x} = 1
sin\sin 我们可以用泰勒级数实现
我们把 xx 取小亿点点,精度可能是过得去的。
这样,把所有的常数全部换成一个极限,那也过得去嘛!
AC 代码:
CPP
#include<iostream>
#include<cmath>
#define double long double
using namespace std;
double Sin(double x) {
    double ret = x, a = x, p = x * x, cur = 1; 

    for (int i = 1; i <= 100; i++) { 
        cur *= (2 * i) * (2 * i + 1); a *= p / cur;
        if (i % 2 == 0) ret += a;
        else  ret -= a;
    }
    return ret;
}
int main()
{
    double x = 0.0000001;
    double q = Sin(x) / x;
    int T;
    cin >> T;
    if (T == 1) 
    {
        cout << "I love Luogu!";
    }
    else if (T == 2)
    {
        cout << 6*q << " " << 4*q;
    } 
    else if (T == 3) 
    {
        cout << 3*q << endl << 12*q << endl <<2*q;
    } 
    else if (T == 4) 
    {
        cout << q * 500 / 3;
    } 
    else if (T == 5) 
    {
        cout << ( 260 + 220 )*q / ( 12 + 20 )*q;
    } 
    else if (T == 6) 
    {
        cout << sqrt(pow(6 , 2) + pow (9 , 2));
    } 
    else if (T == 7) 
    {
        cout << 110*q << endl << 90*q << endl << 0;
    } 
    else if (T == 8) 
    {
        cout <<2*3.141593*5<<endl<<3.141593*5*5<<endl<<4.0/3*3.141593*5*5*5;
    } 
    else if (T == 9) 
    {
        cout <<(((q+q)*2+q)*2+q)*2;
    } 
    else if (T == 10)
    {
        cout << 9*q;
    }  
    else if (T == 11) 
    {
        cout << 33.3333;
    } 
    else if (T == 12) 
    {
        cout << 13*q << endl << "R";
    } 
    else if (T == 13) 
    {
        cout << 16*q;
    } 
    else if (T == 14) 
    {
        cout << 50*q;
    }
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...