题解:P1001 A+B Problem

· · 题解

写在前面的话

注意,如果你是新手,首先就是养成习惯:

  1. 基础代码模板一定要记牢。
  2. 一定要记得打分号

本题代码

#include <iostream>
using namespace std;

int main() {
    int a,b;       //定义变量 a, b
    cin >> a >> b; //输入 a, b
    cout << a+b;   //输出 a+b 
    return 0;      //不要忘记这一行,建议再打初始代码时,提前写好
}

接下来的不是新手可以不用看了

整活时间到!

a+b = (a+b) \times 1

众所周知

\lim_{x\rightarrow0} \frac{\sin x}{x} = 1

代入得

a+b = \lim_{x\rightarrow0} \frac{\sin x}{x} \times (a+b) 我们把 $x$ 取小亿点点,精度可能是过得去的。 代码如下: ```cpp #include<bits/stdc++.h> #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() { int a, b; cin >> a >> b; double x = 0.00000001; double q = Sin(x) / x; int ans = int(ceil(q*a+q*b)); if(ans < -1) ans--; cout << ans; return 0; } ```