หมายเลข Armstrong ใน Java คืออะไร? เป็นข้อกำหนดเบื้องต้นและอัลกอริทึม
เผยแพร่แล้ว: 2021-04-08สารบัญ
หมายเลขอาร์มสตรองคืออะไร?
หมายเลขที่กำหนด x เรียกว่าหมายเลขลำดับอาร์มสตรอง n หากเท่ากับผลรวมของหลักที่ยกกำลัง n เช่น:
abc= pow(a,n) + pow(b,n) + pow(c,n)
จำนวนเต็มบวกของ n หลักคือหมายเลข Armstrong (ของคำสั่ง 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 หรือไม่ สำหรับสิ่งนี้ เราจะใช้ while loop และ for loop ใน Java เพื่อให้เข้าใจโปรแกรมนี้ เราต้องการความรู้ในหัวข้อต่อไปนี้ใน Java:
- คำสั่ง if-else ของ Java
- Java สำหรับ Loop
- Java while และ do-while loop
อัลกอริทึม:
- หาตัวแปรจำนวนเต็ม x
- ค่าถูกกำหนดให้กับตัวแปร x
- ตัวเลขของค่าจะถูกแบ่ง
- หาค่าลูกบาศก์ของแต่ละหลัก
- เพิ่มค่าของลูกบาศก์ทั้งหมด
- ผลลัพธ์จะถูกบันทึกลงในผลรวมของตัวแปร
- ถ้า sum=X พิมพ์ Armstrong number
ถ้า sum != X ไม่พิมพ์หมายเลข Armstrong
โปรแกรมตรวจสอบหมายเลข Armstrong ใน Java
1. หมายเลข Armstrong ใน Java ของคำสั่ง 3
รหัส:
อาร์มสตรองระดับสาธารณะ{
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int x=0,a,อุณหภูมิ;
int n=153;//เป็นตัวเลขเช็คอาร์มสตรอง
อุณหภูมิ=n;
ในขณะที่(n>0)
{
เป็น=n%10;
n=n/10;
x=x+(a*a*a);
}
ถ้า(อุณหภูมิ==x)
System.out.println(“หมายเลขอาร์มสตรอง”);
อื่น
System.out.println("ไม่ใช่หมายเลขอาร์มสตรอง");
}
}
เอาท์พุท:
คำอธิบาย
อันดับแรก ค่าของตัวเลข N จะถูกเก็บไว้ในตัวแปรจำนวนเต็มตัวอื่น x สิ่งนี้ทำได้เนื่องจากเราต้องเปรียบเทียบค่าของตัวเลขเดิมกับตัวเลขสุดท้ายในตอนท้าย A while loop ใช้เพื่อลอดผ่านตัวเลข N จนกระทั่งเท่ากับ 0 ทุกครั้งที่วนซ้ำ ตัวเลขสุดท้ายของ N จะถูกเก็บไว้ใน a
จากนั้นผลลัพธ์จะถูกคำนวณโดยการลูกบาศก์ a หรือใช้คณิตศาสตร์ pow() และเพิ่มลงใน x เมื่อตัวเลขสุดท้ายถูกลบออกจาก N จะถูกหารด้วย 10 สุดท้าย =, temp และ X จะถูกเปรียบเทียบ ถ้าเท่ากัน ก็คือเลขอาร์มสตรอง มิฉะนั้น มันไม่ใช่
2. หมายเลข Armstrong ใน Java ของคำสั่ง n
รหัส:
อาร์มสตรองคลาสสาธารณะ
{
/* ฟังก์ชันคำนวณการยกขึ้นของ
กำลัง b */
อำนาจ int (int a, ยาว b)
{
ถ้า (b == 0)
ส่งคืน 1;
ถ้า (b%2 == 0)
พลังงานกลับ(a, b/2)*กำลัง(a, b/2);
คืนค่า a*power(a, b/2)*power(a, b/2);
}
/* ฟังก์ชันคำนวณลำดับของตัวเลข */
ลำดับ int (int a)
{
int n = 0;
ในขณะที่ (a != 0)
{
ไม่ ++;
a = a/10;
}
กลับ n;
}
// ฟังก์ชั่นตรวจสอบว่าตัวเลขที่กำหนดเป็นหมายเลข Armstrong หรือไม่
บูลีนอาร์มสตรอง (int a)
{
// เรียกฟังก์ชันคำสั่ง
int n = คำสั่ง (a);
int temp=a, ผลรวม=0;
ในขณะที่ (ชั่วคราว!=0)
{
int r = อุณหภูมิ% 10;
ผลรวม = ผลรวม + กำลัง (r,n);
อุณหภูมิ = อุณหภูมิ/10;
}
// ถ้ามันเป็นไปตามเงื่อนไขของอาร์มสตรอง
ผลตอบแทน (ผลรวม == a);
}
// โปรแกรมไดรเวอร์
โมฆะคงที่สาธารณะ main(String[] args)
{
Armstrong obj = ใหม่ Armstrong ();
int a = 153;
System.out.println(obj.isArmstrong(ก));
ก = 1276;
System.out.println(obj.isArmstrong(ก));
}
}
เอาท์พุต :
คำอธิบาย
ในโปรแกรมนี้ แทนที่จะใช้ while loop เราใช้การเรียกซ้ำ ฟังก์ชันแรกใช้ในการคำนวณจำนวน a ยกกำลัง b Math.pow(a,b) สามารถใช้เหมือนกันได้ ฟังก์ชันที่สองตรวจสอบลำดับของตัวเลข เช่น 153 เป็นลำดับที่ 3 สุดท้าย ฟังก์ชันบูลีน Armstrong ใช้เพื่อส่งคืนหากตัวเลขเป็น Armstrong หรือไม่ จากนั้นวัตถุของคลาส Armstrong จะใช้ในการเรียกใช้ฟังก์ชัน
โปรแกรม Java เพื่อพิมพ์ตัวเลขอาร์มสตรองในช่วงที่กำหนด
รหัส:
อาร์มสตรองคลาสสาธารณะ
{
โมฆะคงที่สาธารณะ main(String[] arg)
{
int i=0,x;
System.out.println(“หมายเลขอาร์มสตรองระหว่าง 0 ถึง 999”);
ในขณะที่(ผม<1000)
{
x=armstrongOrNot(i);
ถ้า(x==ผม)
System.out.println(i);
ผม++;
}
}
สแตติก int armstrongOrNot(int n)
{
int c,a=0;
ในขณะที่(n!=0)
{
ค=n%10;
a=a+(c*c*c);
n/=10 ;
}
ส่งคืน a;
}
}
เอาท์พุท:
คำอธิบาย: ในโปรแกรมนี้ จะมีการตรวจสอบแต่ละตัวเลขระหว่างช่วงต่ำและสูงที่กำหนด โพสต์แต่ละเช็ค ผลรวมและจำนวนหลักจะถูกเรียกคืนเป็น 0
บทสรุป
ในบทความนี้ เราได้กล่าวถึงหมายเลข Armstrong ในภาษาจาวาอย่างละเอียด เราเห็นวิธีการตรวจสอบว่าตัวเลขเป็นหมายเลข Armstrong ของคำสั่ง n และคำสั่ง 3 หรือไม่ เรายังเห็นว่าคุณจะได้รับหมายเลข Armstrong ทั้งหมดระหว่างขอบเขตล่างและบนได้อย่างไร
หากคุณต้องการพัฒนาทักษะ Java ของคุณ คุณต้องลงมือทำโปรเจ็กต์ Java เหล่านี้ หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, การพัฒนาแบบฟูลสแตก, ลองดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์แบบฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง, โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Java และก้าวขึ้นในสายอาชีพด้านเทคนิค ให้สำรวจ หลักสูตรออนไลน์ Java ฟรี โดย upGrad บริษัทการศึกษาระดับอุดมศึกษาออนไลน์รายใหญ่ที่สุดของอินเดีย ติดต่อเราเพื่อขอรายละเอียดเพิ่มเติม