1183:反正切函数的应用
总时间限制: 1000ms 内存限制: 65536kB
描述
反正切函数可展开成无穷级数,有如下公式

(其中0 <= x <= 1) 公式(1)

使用反正切函数计算PI是一种常用的方法。例如,最简单的计算PI的方法:

PI=4arctan(1)=4(1-1/3+1/5-1/7+1/9-1/11+…) 公式(2)

然而,这种方法的效率很低,但我们可以根据角度和的正切函数公式:

tan(a+b)=[tan(a)+tan(b)]/[1-tan(a)*tan(b)] 公式(3)

通过简单的变换得到:

arctan§+arctan(q)=arctan[(p+q)/(1-pq)] 公式(4)

利用这个公式,令p=1/2,q=1/3,则(p+q)/(1-pq)=1,有

arctan(1/2)+arctan(1/3)=arctan[(1/2+1/3)/(1-1/2*1/3)]=arctan(1)

使用1/2和1/3的反正切来计算arctan(1),速度就快多了。
我们将公式(4)写成如下形式

arctan(1/a)=arctan(1/b)+arctan(1/c)

其中a,b和c均为正整数。

我们的问题是:对于每一个给定的a(1 <= a <= 60000),求b+c的值。我们保证对于任意的a都存在整数解。如果有多个解,要求你给出b+c最小的解。
输入
输入文件中只有一个正整数a,其中 1 <= a <= 60000。
输出
输出文件中只有一个整数,为 b+c 的值。
样例输入
1
样例输出
5
来源
Noi 01

问题链接:Bailian1183 POJ1183 反正切函数的应用
问题描述:(略)
问题分析
    留个解题程序代码,不解释。
程序说明
    需要注意变量类型,不用long long类型计算数据会溢出。
参考链接:(略)
题记:(略)。

AC的C语言程序如下:

/* Bailian1183 POJ1183 反正切函数的应用 */#include <stdio.h>int main(void)
{long long a, m;scanf("%lld", &a);for(m = a; ; m--)if(!((a * a + 1) % m))break;printf("%lld\n", 2 * a + m + (a * a + 1) / m);return 0;
}

Bailian1183 POJ1183 反正切函数的应用【迭代计算】相关推荐

  1. 【C语言】第五章 迭代计算与循环结构 题解

    第五章 迭代计算与循环结构 1.代码如下: #include <stdio.h>int main() {double sum = 0, prev = 1, next = 2, temp;f ...

  2. 4.2 算法之数论 185 反正切函数的应用 scratch

    http://noi.openjudge.cn/ch0402/185/ /* 4.2 算法之数论 185 反正切函数的应用 http://noi.openjudge.cn/ch0402/185/ */ ...

  3. 4.2 算法之数论 185 反正切函数的应用 python

    http://noi.openjudge.cn/ch0402/185/ """4.2 算法之数论 185 反正切函数的应用 http://noi.openjudge.cn ...

  4. 按比例算出成绩 用c语言,Excel按指定比例生成学生总分,并迭代计算出各学科分数...

    这篇博文题目很拗口,主要是因为这次做的表实在有点奇葩,很难用一两句话表达清楚.最近做个了个学生成绩表,不是真实存在的成绩,而是生成出来的,为了模拟得更像真的,费了不少力气.下面总结一下,备忘. 闲话少 ...

  5. POJ 1183 反正切函数的应用

    Language:Default 反正切函数的应用 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12424   Accep ...

  6. python迭代计算pi_python使用三角迭代计算圆周率PI的方法

    本文实例讲述了python使用三角迭代计算圆周率PI的方法.分享给大家供大家参考.具体如下: 方法1: # Calculating PI using trigonometric iterations ...

  7. 高精度反正切函数的实现

    反正切函数的根本实现方法还是泰勒展开式逼近,但它不能单独采用,必须使自变量X趋进这个函数曲线的平滑度最高的点,这个点的收敛速度最快,反正切函数arctan(x)的这个点是0和无穷大. 这里采用趋近零的 ...

  8. Flink之DataSet迭代计算

    目录 (1)迭代计算分类与原理 (2)全量迭代计算详解 (2.1)案例分析 (2.2)案例实战 (3)增量迭代计算详解 (1)迭代计算分类与原理 迭代计算在批量数据处理过程中的应用非常广泛,如常用的机 ...

  9. 递归计算过程与迭代计算过程

    最近重新看SICP,写点感想.下面是关于递归与迭代计算的一些知识,SICP 1.2.1. 递归 递归是实现程序计算过程中的描述过程的基本模式之一,在讨论递归的问题前我们必须十分小心,因为递归包含两个方 ...

最新文章

  1. Android常用知识点回顾
  2. Understanding the Framework (理解FMS框架)
  3. Word的常用功能设置(
  4. SQL AUTO INCREMENT 字段
  5. Centos Apache服务搭建
  6. ubuntu20.04中安装划词翻译_教你轻松玩转免安装的网页翻译插件“有道网页翻译2.0”...
  7. Apollo进阶课程㊸丨Apollo实战——障碍物感知和路径规划能力实战
  8. matlab求RMSECV,CARS 用于matlab模式识别(分类和回归)的特征变量提取方法 联合开发网 - pudn.com...
  9. sql随机抽取数据50条_厉害!苏宁通过citus打造分布式数据库抗住DB高负载
  10. mysql批量取消多行sql_mysql批量删除指定前缀的表,批量修改表名的SQL语句
  11. python *args用法_python函数参数*args**kwargs用法实例
  12. 专家:未来三年为转云时间窗口
  13. c语言跑马灯循环三次停止,跑马灯代码 连续不间断的跑马灯的代码(js)
  14. C++ 正则获取url中参数
  15. echarts社区饼图 echart饼图 玫瑰图
  16. vue表格中的内容换行与导出Excel换行
  17. 【论文导读】Causal Protein-Signaling Networks Derived from Multiparameter Single-Cell Data
  18. 服务器装机选哪个系统好,服务器该装08系统好还是03系统好?
  19. WIN10键盘无法使用,什么按键都不管用
  20. 如何用Python画一只狗狗——turtle基础

热门文章

  1. Nginx——安装与虚拟主机配置(域名非80端口问题)
  2. 苹果本Win10双系统开启CPU虚拟化
  3. Fission:基于 Kubernetes 的 Serverless 函数框架
  4. 基于libmemcached为php扩展memcached服务
  5. [ANE for Android]Java接口部分引用第三方JAR的解决办法
  6. Android中RelativeLayout及TableLayout使用说明
  7. 为什么eolinker发送老是等待_eolinker环境管理之开发、测试和生产环境
  8. IDEA工作常用快捷键
  9. Mysql执行计划2
  10. Android多线程--AsyncTask