描述:
反正切函数可展开成无穷级数,有如下公式
(其中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(p)+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

/******************************************************
**文件名:百炼-1183
**Copyright (c) 2015-2025 OrdinaryCrazy
**创建人:OrdinaryCrazy
**日期:20170817
**描述:百炼1183参考答案
**版本:1.0
*******************************************************/
/*************************************
直接将条件转化为a*b + 1 = (b - a)*c好像还是不好下手
直接枚举b,c是肯定不行的,而且重点是,不知道要枚举到多少合适
转化一下问题,假设b = a + m,c = a + n;
条件就转化为a*a + 1 = mn,好了,问题转化为求m+n的最小值
均值不等式
**************************************/
#include <stdio.h>
#include <math.h>
int main()
{long long a,x,sqr,tmp;scanf("%lld",&a);tmp = a*a + 1;sqr = sqrt(tmp);for(x = sqr;x > 0;x--)if(!(tmp % x))break;printf("%lld\n",2*a + x + tmp/x);return 0;
}

OpenJudge百炼-1183-反正切函数的应用-C语言-简单计算相关推荐

  1. java语言计算圆周率_Java语言简单计算圆周率完整示例

    本文实例讲述了Java语言简单计算圆周率完整示例.分享给大家供大家参考,具体如下,希望对大家学习Java语言简单计算圆周率有所帮助. 这两天在网上看到一个题,已知Pi可以用函数4 * (1 – 1/3 ...

  2. 55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287

    //模板#include <iostream> #include <cstdio> #include <string> #include <algorithm ...

  3. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数

    R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录

  4. R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战

    R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战 目录 R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战

  5. c语言 简单编程题,c语言简单编程练习题.doc

    c语言简单编程练习题 精品文档 2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 c语言简单编程练习题 然后输出相应的字符. #include #inc ...

  6. 主流WEB开发语言简单对比(转)

    主流WEB开发语言简单对比  原文链接:http://www.uml.org.cn/site/201401091.asp   随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...

  7. C 语言实例 - 计算自然数的和

    C 语言实例 - 计算自然数的和自然数是指表示物体个数的数,即由0开始,0,1,2,3,4,--一个接一个,组成一个无穷的集体,即指非负整数. 实例 - 使用 for #include <std ...

  8. c语言实现连续几个bit位置1,【C语言简单说】四:常量

    常量和变量是一种相对的概念,在这里我开始跟大家说说常量和变量的区别.可能前几节的小伙伴们并没有能感受出来,不过有了常量的对比那么将会有很好的理解. ..@_@|||||.. 头昏眼花 常量,就是一些固 ...

  9. PTA浙大版python程序设计题目集--第1章-3 输出“Python语言简单易学” (10 分)

    输入格式: 无 输出格式: 输出一句短语,Python语言简单易学. 如果包含汉字,用"print(s.encode("utf-8"))"输出. 如: s=&q ...

最新文章

  1. oracle相关操作
  2. Pycharm增加新安装Python的路径
  3. Backnbone的入门基础——Backbone的model
  4. basicdatasourcefactory mysql_Java基础-DBCP连接池(BasicDataSource类)详解
  5. Java开发入门教程!java垃圾回收机制描述正确
  6. [CodeForces]Codeforces Round #432 (Div. 2)
  7. Power BI for Office 365 概览
  8. English trip M1 - AC11 I Dreamed a Dream? 我做了一个梦 Teacher:Lamb
  9. Flask租房项目总结
  10. 数据库的系统组成包括哪些?
  11. oracle rac实现,炼数成金Oracle 12C RAC集群原理与管理实战 16课
  12. frangi黑森矩阵_消灭黑森臭虫
  13. 软件项目延期,怎么办?
  14. 一起来看看,除夕夜有哪些走心的文案?
  15. Homework 1 : Knowledge items of C++ (part 1)
  16. 北航2020级算法上机 C1-I 对抗 题解
  17. python中init方法的两个下划线_为什么Python中有各种各样的“_”下划线?分别有什么用?...
  18. JavaSE学习---I/O流学习分享
  19. Marktext语法——Emoji表情大全
  20. JS读取json 文件

热门文章

  1. UnRAR.dll解压rar文件
  2. 【小程序开发原创】小程序裁剪图片上传头像,二维码源码
  3. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
  4. 嵌入式RTSP转RTMP设备说明
  5. Foo,getName题解分析
  6. rasp 系统_一类PHP RASP实现
  7. 用python一键生成动画(上)
  8. 学习计算机网络的几个好网站
  9. 视觉SLAM十四讲学习笔记——第十三讲 实践:设计SLAM系统
  10. 活体检测——Oulu-NPU数据集