Java 如何检查一个数是否为三角数
自然数’n’的三角数可以定义为从1到n的所有自然数的总和。
它被称为三角数,因为我们可以使用行号等于点号的总点数来表示它的等边三角网格形式。在第1行有1个点,在第2行有2个点,在第3行有3个点,以此类推。
简单来说,如果一个数是从1开始的所有连续数的总和,则它是一个三角数。
Mathematically n*(n+1)/2
在本文中,我们将看到如何使用Java编程语言来检查一个数字是否是三角形数。
为了向您展示一些示例
示例1
输入的数字是10
让我们通过使用三角形数的逻辑来检查它-
1 + 2 + 3 + 4 = 10 which is the sum of all consecutive numbers starting from 1.
因此,10是一个三角形数
示例2
输入的数字是15
让我们用三角形数的逻辑来检查一下-
1 + 2 + 3 + 4 + 5 = 15 which is the sum of all consecutive numbers starting from 1.
因此,15是一个三角数。
示例3
输入数字是7
让我们使用三角数的逻辑来进行验证-
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
所以,从上面我们知道7不是一个三角形数。
其他一些三角形数的示例包括1, 3, 6, 21, 55等。
步骤
- 第1步 - 通过初始化或用户输入获取整数。
-
第2步 - 使用循环并从1迭代到输入的数字。同时不断添加每个数字,同时检查是否在任何时刻和原始输入数字相等。
-
第3步 - 如果在任何时候总和等于原始输入数字,然后打破循环并打印它是三角形数字,否则打印它不是三角形数字。
多种方法
我们提供了3种不同的方法来解决问题。
- 通过使用静态输入值
-
通过使用用户定义的方法
-
查找数字的三角形数
让我们逐个查看程序及其输出。
方法1:使用静态输入值
在这种方法中,程序中将初始化一个整数值,然后使用算法可以检查一个数字是否是三角形数。
示例
public class Main{
public static void main(String args[]){
//Declared an integer variable and initialized a number as value
int originalNumber = 6;
//printing the given number to be checked
System.out.println("Given number: "+originalNumber);
//declaring an integer variable sum to hold the sum value
//initializing it with value as 0
int sum = 0;
//declare boolean variable activeFlag as false
boolean activeFlag = false;
// Loop that adds consecutive digits
for(int i = 1; i<=originalNumber; i++){
sum = sum + i;
//if sum is equal with original number
//then make the activeFlag as true;
if(sum == originalNumber){
activeFlag = true;
break;
}
}
//if activeFlag is true then given number is triangular number
//print it is triangular number
if(activeFlag == true)
System.out.println(originalNumber+" is a triangular number");
//else print given number is not a triangular number
else {
System.out.println(originalNumber+" is not a triangular number");
}
}
}
输出
Given number: 6
6 is a triangular number
方法2:通过使用用户定义的方法
在这种方法中,程序将初始化一个整数值,然后我们将通过将给定的数字作为参数调用一个用户定义的方法。
在方法内部,我们将使用算法来检查一个数是否是三角形数。
示例
public class Main{
public static void main(String args[]){
//Declared an integer variable and initialized a number as value
int originalNumber = 55;
//printing the given number to be checked
System.out.println("Given number: "+originalNumber);
//call the user defined method to check a number is triangular or not
//by passing the input number as parameter
if(checkTriangular(originalNumber)){
System.out.println(originalNumber+" is a triangular number");
} else {
System.out.println(originalNumber+" is not a triangular number");
}
}
//user defined method to check triangular number
static boolean checkTriangular(int originalNumber){
//declaring an integer variable sum to hold the sum value
//initializing it with value as 0
int sum = 0;
// Loop that adds consecutive digits
for(int i = 1; i<=originalNumber; i++){
sum = sum + i;
if(sum == originalNumber){
return true;
}
}
return false;
}
}
输出
Given number: 55
55 is a triangular number
方法3:找到一个数的三角数
在这个方法中,我们将找到一个给定数的三角数。意思是给定一个数,假设为’n’,我们需要找到n*(n+1)/2。
示例
public class Main{
//main method
public static void main(String[] args){
//declared and initialized an integer variable
int inputNumber = 7;
//declared an integer variable and initialize with value 0
int triangularNumber = 0;
//using loop we will find the sum of consecutive numbers from 1 to that number
for(int i = 1 ; i<=inputNumber ; i++){
triangularNumber = triangularNumber + i;
}
System.out.println(triangularNumber+" is the triangular number for "+inputNumber);
}
}
输出
28 is the triangular number for 7
在这篇文章中,我们探讨了如何使用不同的方法在Java中检查一个数是否为三角形数。