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 循环
算法:
- 取一个整数变量 x
- 将值分配给变量 x
- 值的数字被拆分
- 找到每个数字的立方值
- 添加所有立方体的值
- 输出保存到 sum 变量
- 如果 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 在线课程。 与我们联系了解更多详情。