• poj1183 反正切函数的应用(水)


    这一题主要是推导过程+注意一下范围。

    // 由公式4你可以得到:
    arctan(1/a)=arctan[(1/b+1/c)/(1-1/b*c)]
    =>b*c-1=a(b+c);
    令 b=a+m,c=a+n;
    =>(a+m)*(a+n)-1=a*(a+m+a+n)
    =>m*n=a*a+1
    
    for (m=a;m>=1;m--)
      if ((a*a+1)%m==0) break;
      n=(a*a+1)/m;
     

    完成了推导之后,需要注意一下输出的值的范围。

    %h short  
    %d int 有符号整数 -32767 到 32768 
    %u unsigned int 无符号整数 0 到 65565 
    %l long int 有符号长整形  
    %lu unsigned long 无符号长整形  
    %ll long long int  
    %llu unsigned long long [c99] 

    下面附上我的代码。。(表示刚转c++写的程序略丑,- - 不求吐槽。。

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int main()
    {
        long long a,i,b,c,n=0,m=0;
        double x,y;
        
        cin>>a;
        for (m=a;m>=1;m--)
         if ((a*a+1)%m==0) break;
         n=(a*a+1)/m;
         m=m+a;
         n=n+a;
         printf("%llu
    ",m+n);
        
        return 0;
    }
  • 相关阅读:
    C#语法糖
    C#十种语法糖
    委托
    C#迭代器
    C#事件
    C#事件
    c# event 事件浅析
    ASP.NET CORE 增删改查
    asp.net core 增删改查
    asp.net core 搭建MVC
  • 原文地址:https://www.cnblogs.com/polebug/p/3462861.html
Copyright © 2020-2023  润新知