Dado un número n , la tarea es encontrar el n -ésimo número cuadrado centrado.
Número cuadrado centrado es un número figurado centrado que da el número de puntos en un cuadrado con un punto en el centro y todos los demás puntos que rodean el punto central en capas cuadradas sucesivas. El número N cuadrado centrado se puede calcular usando la fórmula n 2 + (n-1) 2 .
Ejemplos:
Input : n = 2 Output : 5 Input : n = 9 Output : 145
- Encontrar el n-ésimo número cuadrado centrado
Si miramos más de cerca, podemos notar que el n-ésimo número cuadrado centrado puede verse como la suma de dos números cuadrados consecutivos (1 punto, 4 puntos, 9 puntos, 16 puntos, etc. ).Podemos encontrar el n-ésimo número cuadrado centrado usando la fórmula a continuación.
n-ésimo número cuadrado centrado = n 2 + (n-1) 2
A continuación se muestra la implementación:
C++
// C++ program to find nth
// Centered square number.
#include <bits/stdc++.h>
using
namespace
std;
// Function to calculate Centered
// square number function
int
centered_square_num(
int
n)
{
// Formula to calculate nth
// Centered square number
return
n * n + ((n - 1) * (n - 1));
}
// Driver Code
int
main()
{
int
n = 7;
cout << n <<
"th Centered square number: "
;
cout << centered_square_num(n);
return
0;
}
Java
// Java program to find nth Centered square
// number
import
java.io.*;
class
GFG {
// Function to calculate Centered
// square number function
static
int
centered_square_num(
int
n)
{
// Formula to calculate nth
// Centered square number
return
n * n + ((n -
1
) * (n -
1
));
}
// Driver Code
public
static
void
main (String[] args)
{
int
n =
7
;
System.out.print( n +
"th Centered"
+
" square number: "
+ centered_square_num(n));
}
}
// This code is contributed by anuj_67.
Python3
# Python program to find nth
# Centered square number.
# Function to calculate Centered
# square number function
def
centered_square_num(n):
# Formula to calculate nth
# Centered square number
return
n
*
n
+
((n
-
1
)
*
(n
-
1
))
# Driver Code
n
=
7
print
(
"%sth Centered square number: "
%
n,
centered_square_num(n))
C#
// C# program to find nth
// Centered square number.
using
System;
public
class
GFG {
// Function to calculate Centered
// square number function
static
int
centered_square_num(
int
n)
{
// Formula to calculate nth
// Centered square number
return
n * n + ((n - 1) * (n - 1));
}
// Driver Code
static
public
void
Main(){
int
n = 7;
Console.WriteLine( n +
"th Centered"
+
" square number: "
+ centered_square_num(n));
}
}
// This code is contributed by anuj_67.
PHP
<?php
// PHP program to find nth
// Centered square number
// Function to calculate Centered
// square number function
function
centered_square_num(
$n
)
{
// Formula to calculate nth
// Centered square number
return
$n
*
$n
+ ((
$n
- 1) *
(
$n
- 1));
}
// Driver Code
$n
= 7;
echo
$n
,
"th Centered square number: "
;
echo
centered_square_num(
$n
);
// This code is contributed by anuj_67.
?>
Producción :
7th Centered square number: 85
- Compruebe si N es un número cuadrado centrado o no:
- Los primeros números cuadrados centrados son:
1,5,13,25,41,61,85,113,145,181,…………
- Dado que el n-ésimo número cuadrado centrado está dado por
H(n) = n * n + ((n - 1) * (n - 1))
- La fórmula indica que el n-ésimo número cuadrado centrado depende cuadráticamente de n. Por lo tanto, trate de encontrar la raíz integral positiva de la ecuación N = H(n).
H(n) = nth centered-square-number number N = Given Number Solve for n: H(n) = N n * n + ((n - 1) * (n - 1)) = N Applying Shridharacharya Formula The positive root of equation (i) n = (9 + sqrt(36*N+45))/18;
- Después de obtener n, verifique si es un número entero o no. n es un número entero si n – floor(n) es 0.
A continuación se muestra la implementación del enfoque anterior:
CPP
#include <bits/stdc++.h>
using
namespace
std;
bool
centeredSquare_number(
int
N)
{
float
n = (9 +
sqrt
(36*N+45))/18;
return
(n - (
int
) n) == 0;
}
int
main()
{
int
i = 13;
cout<<centeredSquare_number(i);
return
0;
}
Java
// Java Code implementation of the above approach
class
GFG {
static
int
centeredSquare_number(
int
N)
{
float
n = (
9
+ (
float
)Math.sqrt(
36
*N+
45
))/
18
;
if
(n - (
int
) n ==
0
)
return
1
;
else
return
0
;
}
// Driver code
public
static
void
main (String[] args)
{
int
i =
13
;
System.out.println(centeredSquare_number(i));
}
}
// This code is contributed by Yash_R
Python3
# Python3 implementation of the above approach
from
math
import
sqrt
def
centeredSquare_number(N) :
n
=
(
9
+
sqrt(
36
*
N
+
45
))
/
18
;
if
(n
-
int
(n))
=
=
0
:
return
1
else
:
return
0
# Driver Code
if
__name__
=
=
"__main__"
:
i
=
13
;
print
(centeredSquare_number(i));
# This code is contributed by Yash_R
C#
// C# Code implementation of the above approach
using
System;
class
GFG {
static
int
centeredSquare_number(
int
N)
{
float
n = (9 + (
float
)Math.Sqrt(36 * N + 45))/18;
if
(n - (
int
) n == 0)
return
1;
else
return
0;
}
// Driver code
public
static
void
Main (String[] args)
{
int
i = 13;
Console.WriteLine(centeredSquare_number(i));
}
}
// This code is contributed by Yash_R
Producción:0
- Los primeros números cuadrados centrados son:
Referencia: https://en.wikipedia.org/wiki/Centered_square_number