ปัญหา
เขียนโปรแกรมเพื่อหาผลรวมขององค์ประกอบกำลังสองสมบูรณ์ในอาร์เรย์
กำหนดจำนวนองค์ประกอบในอาร์เรย์เป็นอินพุต และผลรวมของกำลังสองสมบูรณ์ขององค์ประกอบเหล่านั้นที่มีอยู่ในอาร์เรย์จะเป็นเอาต์พุต
วิธีแก้ปัญหา
ตัวอย่างเช่น
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