美文网首页
poj1183 公式推导

poj1183 公式推导

作者: 暖昼氤氲 | 来源:发表于2019-11-06 19:05 被阅读0次
/*
Time:2019.11.6
Author: Goven
type:公式推导 
err:
ref:
题目:化简为 min b+c=2a + (b-a)+(1+a*a)/(b-a); 等价于求解(1+a*a)的两个因子和x1,x2和x1+x2最小
可以证明 a = x1*x4 = x2*x3(其中 x1<x2<x3<x4),x1+x4>x2+x3.
所以只要找 (1+a*a)两个最相近的因子 
*/

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    unsigned int a, n; //err1:int范围是2XX,unsigned为4XX 
    cin >> a;
    n = 1 + a * a;
    for (int i = sqrt((double)n); i >= 1; i--) {
        if (n % i == 0) {
            cout << n / i + i + 2 * a << endl;
            break;
        }
    }
    return 0;
}


相关文章

网友评论

      本文标题:poj1183 公式推导

      本文链接:https://www.haomeiwen.com/subject/xbkpbctx.html