Java 中的阿姆斯壮数是什么? 这是先决条件和算法

已发表: 2021-04-08

目录

什么是阿姆斯壮数?

给定数 x 称为 n 阶 Armstrong 数,如果它等于其数字之和的 n 次幂,即:

abc= pow(a,n) + pow(b,n) + pow(c,n)

n 位数的正整数是阿姆斯壮数(3 阶),如果它等于其位数的立方和。 例如:

输入:153

输出:是的

1*1*1 + 5*5*5 + 3*3*3 = 153

因此,153 是阿姆斯壮数

输入:121

输出:否

1*1*1 + 2*2*2 + 1*1*1 = 10

因此,120 不是阿姆斯壮数。

先决条件和算法

在本文中,我们将学习检查输入数字是否为 Armstrong 数字。 为此,我们将在 Java 中使用 while 循环和 for 循环。 要理解这个程序,我们需要了解 Java 中的以下主题:

  • Java if-else 语句
  • Java for 循环
  • Java while 和 do-while 循环

算法:

  1. 取一个整数变量 x
  2. 将值分配给变量 x
  3. 值的数字被拆分
  4. 找到每个数字的立方值
  5. 添加所有立方体的值
  6. 输出保存到 sum 变量
  7. 如果 sum=X,则打印 Armstrong 数

如果 sum != X,则打印非 Armstrong 数

用Java检查阿姆斯壮数的程序

1. 3 阶 Java 中的 Armstrong 数

代码:

公共课阿姆斯特朗{

公共静态无效主要(字符串[]参数){

诠释 x=0,一,温度;

int n=153;//是检查阿姆斯壮的数字

温度=n;

而(n>0)

{

a=n%10;

n=n/10;

x=x+(a*a*a);

}

如果(温度==x)

System.out.println(“阿姆斯壮数”);

别的

System.out.println(“非阿姆斯壮数”);

}

}

输出:

解释

首先,给定数字 N 的值存储在另一个整数变量 x 中。 这样做是因为我们需要在最后比较原始数字和最终数字的值。 while 循环用于遍历数字 N,直到它等于 0。每次迭代时,N 的最后一位都存储在 a 中。

然后通过立方 a 或使用 Math 计算结果。 pow() 并将其添加到 x. 当从 N 中去掉最后一位时,除以 10。最后将 =、temp 和 X 进行比较。 如果它们相等,则为阿姆斯壮数。 否则,它不是。

2. n 阶 Java 中的 Armstrong 数

代码:

公共课阿姆斯特朗

{

/* 计算a的函数

功率 b */

int power(int a, long b)

{

如果( b == 0)

返回 1;

如果 (b%2 == 0)

返回功率(a,b/2)*功率(a,b/2);

返回 a*power(a, b/2)*power(a, b/2);

}

/* 计算数字顺序的函数 */

int order(int a)

{

诠释 n = 0;

而(一个!= 0)

{

n++;

a = a/10;

}

返回 n;

}

// 检查给定数是否为阿姆斯壮数的函数

布尔阿姆斯特朗 (int a)

{

// 调用排序函数

int n = order(a);

国际温度=一,总和= 0;

而(温度!= 0)

{

int r = temp%10;

总和 = 总和 + 幂(r,n);

温度=温度/10;

}

// 如果满足阿姆斯壮条件

返回(总和 == a);

}

// 驱动程序

公共静态无效主要(字符串 [] 参数)

{

阿姆斯特朗 obj = 新阿姆斯壮();

整数 a = 153;

System.out.println(obj.isArmstrong(a));

a = 1276;

System.out.println(obj.isArmstrong(a));

}

}

输出

解释

在这个程序中,我们使用了递归而不是 while 循环。 第一个函数用于计算 a 的 b 次幂。 Math.pow(a,b) 也可以用于相同的目的。 第二个函数检查数字的顺序,例如,153 的顺序为 3。最后,布尔函数 Armstrong 用于返回数字是否为 Armstrong。 然后使用 Armstrong 类的对象来调用这些函数。

打印给定范围内的 Armstrong 数字的 Java 程序

代码:

公共课阿姆斯特朗

{

公共静态无效主(字符串[] arg)

{

诠释 i=0,x;

System.out.println(“0 到 999 之间的阿姆斯壮数字”);

而(我<1000)

{

x=armstrongOrNot(i);

如果(x==i)

System.out.println(i);

我++;

}

}

静态 int armstrongOrNot(int n)

{

诠释 c,a=0;

而(n!= 0)

{

c=n%10;

a=a+(c*c*c);

n/=10 ;

}

返回一个;

}

}

输出:

说明:在这个程序中,检查给定区间低和高之间的每个数字。 每次检查后,总和和位数恢复为 0。

结论

在本文中,我们详细介绍了 java 中的一个 Armstrong 数。 我们看到了如何检查一个数字是否是 n 阶和 3 阶的 Armstrong 数。我们还看到了如何获得下限和上限之间的所有 Armstrong 数。

如果您想提高您的 Java 技能,您需要掌握这些 Java 项目。 如果您有兴趣了解有关 Java、全栈开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训,9 个以上的项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

如果您希望了解有关 Java 的更多信息并在您的技术职业生涯中提升,那么请探索印度最大的在线高等教育公司 upGrad提供的免费 Java 在线课程与我们联系了解更多详情。

成为全栈开发人员

升级和 IIIT-BANGALORE 的软件开发 PG 文凭
现在注册@升级