POJ 3175 Finding Bovine Roots

題目鏈接:http://poj.org/problem?id=3175

題目大意:給一個數n ,然後給出一個n位數,代表一個數開方都的前n位小數部分,求出開方之前的數;

思路:x開放後小數部分爲k.123,那k.123的平方<x,k.124的平方一定大於x;

所以只需枚舉  long long int (k.123)*(k.123)+1<k.124*k.124就可以求出答案;

代碼如下:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
   int n;
   double x;
   scanf("%d%lf",&n,&x);
   double t=1.0;
   for( int i=0;i<n;i++)
    t/=10.0;
   x*=t;
   for(int i=1;;i++)
   {
       double y=(long long )((x+i)*(x+i))+1;
       double yy=(x+i+t)*(x+i+t);
       if(yy>y)
       {
           printf("%lld",(long long )y);
           break;
       }
   }

}

發佈了67 篇原創文章 · 獲贊 24 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章