给定一个整数N ,任务是检查它是否是一个居中三角数。
Centered triangular number is a centered polygonal number that represents a triangle with a dot in the centre and all other dots surrounding the centre in successive triangular layers . The first few Centered triangular numbers are 1, 4, 10, 19, 31, 46, 64, 85, 109, 136, …
例子:
Input: N = 4
Output: Yes
Input: 20
Output: No
方法:
- 第K个中心三角数可表示为:
- 为了检查给定数字N是否可以表示为中心三角数,我们需要检查是否是否给出整数。
下面是上述方法的实现:
C++
// C++ implementation to check
// whether a given number is a
// Centered triangular number or not
#include
using namespace std;
// Function to check if the
// number is a Centered
// Triangular Number
bool isCenteredtriangular(int N)
{
float K = (-3
+ sqrt(24 * N - 15))
/ 6;
// Condition for K to be
// an integer
return (K - (int)K) == 0;
}
// Driver Code
int main()
{
int N = 85;
if (isCenteredtriangular(N)) {
cout << "Yes";
}
else {
cout << "No";
}
return 0;
}
Java
// Java implementation to check that
// a number is a centered triangular
// number or not
import java.lang.Math;
class GFG{
// Function to check that the number
// is a centered triangular number
public static boolean isCenteredTriangular(int N)
{
double K = (-3 + Math.sqrt(24 * N - 15)) / 6;
// Condition to check if the number
// is a centered triangular number
return (K - (int)K) == 0;
}
// Driver Code
public static void main(String[] args)
{
int N = 85;
// Function call
if (isCenteredTriangular(N))
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
}
}
// This code is contributed by ShubhamCoder
Python3
# Python3 implementation to check
# whether a given number is a
# Centered triangular number or not
import math
# Function to check if the
# number is a Centered
# Triangular Number
def isCenteredtriangular(N):
K = (-3 + math.sqrt(24 * N - 15)) / 6
# Condition for K to be
# an integer
if (K - int(K)) == 0:
return True
return False
# Driver Code
# Given Number
N = 85
# Function call
if (isCenteredtriangular(N)):
print("Yes")
else:
print("No")
# This code is contributed by shubhamsingh10
C#
// C# implementation to check whether
// a given number is a centered
// triangular number or not
using System;
class GFG{
// Function to check if the number
// is a centered triangular number
static bool isCenteredtriangular(int N)
{
double K = (-3 + Math.Sqrt(24 * N - 15)) / 6;
// Condition for K to be
// an integer
return (K - (int)K) == 0;
}
// Driver Code
static public void Main ()
{
int N = 85;
if (isCenteredtriangular(N))
{
Console.Write("Yes");
}
else
{
Console.Write("No");
}
}
}
// This code is contributed by shubhamsingh10
Javascript
输出:
Yes