如何在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 - 如果在任何时候和等于原始输入数字,则中断循环并打印它是三角数;否则打印它不是三角数。

多种方法

我们提供了三种不同的方法来解决这个问题。

  • 使用静态输入值

  • 使用用户自定义方法

  • 查找一个数的三角数

让我们逐一查看程序及其输出。

方法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中检查一个数是否为三角数。

更新于:2022年10月28日

3K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告