ปัญหา
เขียนโปรแกรมเพื่อหาผลรวมขององค์ประกอบกำลังสองสมบูรณ์ในอาร์เรย์
กำหนดจำนวนองค์ประกอบในอาร์เรย์เป็นอินพุต และผลรวมของกำลังสองสมบูรณ์ขององค์ประกอบเหล่านั้นที่มีอยู่ในอาร์เรย์จะเป็นเอาต์พุต
วิธีแก้ปัญหา
ตัวอย่างเช่น
Input= 1, 2, 3, 4, 5, 9,10,11,16 The perfect squares are 1, 4, 9, 16. Sum = 1 + 4 + 9 +16 = 30 Output: 30
อัลกอริทึม
อ้างถึงอัลกอริธึมที่ระบุด้านล่างเพื่อเพิ่มองค์ประกอบกำลังสองที่สมบูรณ์แบบในอาร์เรย์
ขั้นตอนที่ 1 - อ่านจำนวนองค์ประกอบในอาร์เรย์ที่รันไทม์
ขั้นตอนที่ 2 - ป้อนองค์ประกอบ
ขั้นตอนที่ 3 - ประกาศและเริ่มต้น sum=0
ขั้นตอนที่ 4 - ตรวจสอบว่าองค์ประกอบอาร์เรย์เป็นกำลังสองสมบูรณ์หรือไม่
ขั้นตอนที่ 5 - หากเป็นกำลังสองสมบูรณ์ ให้คำนวณ sum=sum+number
ขั้นตอนที่ 6 - ส่งคืนผลรวม
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อค้นหาผลรวมขององค์ประกอบกำลังสองสมบูรณ์ในอาร์เรย์ -
#include<stdio.h> #include<math.h> int isPerfectSquare(int number){ int iVar; float fVar; fVar=sqrt((double)number); iVar=fVar; if(iVar==fVar) return number; else return 0; } int main(){ int n; printf("enter no: of elements:"); scanf("%d",&n); int arr[n]; int i; printf("enter the elements in an array:\n"); for(i = 0; i < n; i++){ scanf("%d",&arr[i]); } int sum = 0; for(i = 0; i < n; i++){ sum = sum + isPerfectSquare(arr[i]); } printf("sum=%d",sum); return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Run 1: enter no: of elements:5 enter the elements in an array: 1 3 5 9 10 sum=10 Run 2: enter no: of elements:5 enter the elements in an array: 1 4 9 16 25 sum=55