📜  正方形为N位的最小数字

📅  最后修改于: 2021-04-21 23:39:12             🧑  作者: Mango

给定数字N ,任务是找到平方数为N位数的最小数字。

例子:

天真的方法:解决问题的最简单方法是从每个数字的平方开始计算,并计算其平方中的位数。打印第一个数字,该数字的平方是N位数字。
时间复杂度: O(√(10 N ))

有效方法:要解决此问题,我们需要进行以下观察:

现在,我们需要找到该系列的N的公式。

该系列的术语可以用以下形式表示:

因此,我们可以得出结论:该系列的N可以表示为

因此,为了解决该问题,我们只需要为给定的整数N计算ceil(10 (N – 1)/ 2 )

下面是上述方法的实现:

C++
// C++ Program to find the smallest
// number whose square has N digits
  
#include 
using namespace std;
  
// Function to return smallest number
// whose square has N digits
int smallestNum(int N)
{
  
    // Calculate N-th term of the series
    float x = pow(10.0, (N - 1) / 2.0);
    return ceil(x);
}
  
// Driver Code
int main()
{
    int N = 4;
    cout << smallestNum(N);
  
    return 0;
}


Java
// Java program for above approach 
class GFG{ 
  
// Function to return smallest number
// whose square has N digits
static int smallestNum(int N)
{
   
    // Calculate N-th term of the series
    float x = (float)(Math.pow(10, (N - 1) / 2.0));
    return (int)(Math.ceil(x));
}
  
// Driver code 
public static void main(String[] args) 
{ 
    int N = 4;
    System.out.print(smallestNum(N)); 
} 
} 
  
// This code is contributed by spp


Python3
# Python3 Program to find the smallest
# number whose square has N digits
import math;
  
# Function to return smallest number
# whose square has N digits
def smallestNum(N):
  
    # Calculate N-th term of the series
    x = pow(10.0, (N - 1) / 2.0);
    return math.ceil(x);
  
# Driver Code
N = 4;
print(smallestNum(N));
  
# This code is contributed by Code_mech


C#
// C# program for above approach 
using System;
class GFG{ 
  
// Function to return smallest number
// whose square has N digits
static int smallestNum(int N)
{
  
    // Calculate N-th term of the series
    float x = (float)(Math.Pow(10, (N - 1) / 2.0));
    return (int)(Math.Ceiling(x));
}
  
// Driver code 
public static void Main() 
{ 
    int N = 4;
    Console.Write(smallestNum(N)); 
} 
} 
  
// This code is contributed by Code_Mech


输出:
32

时间复杂度: O(log(N))
辅助空间: O(1)