เราได้รับจำนวนเต็มบวก N เป้าหมายคือการนับคู่ของจำนวนเต็มบวกที่ไม่เป็นลบซึ่งตรงกับความไม่เท่าเทียมกัน − x*x + y*y
เราจะเริ่มจาก x=0 ถึง x
2
ล.; N และ y=0 ถึง y
2
<น . ถ้ามี x
2
+ y
2
ให้เราเข้าใจด้วยตัวอย่าง -
ป้อนข้อมูล − n=4
ผลผลิต − คู่ที่แตกต่าง=4
คำอธิบาย − คู่จะเป็น (0,0), (1,1), (0,1), (1,0) ทั้งหมดนี้ตอบสนองความไม่เท่าเทียมกัน x 2 + y 2 <4
ป้อนข้อมูล −n=2
ผลผลิต − คู่ที่แตกต่าง=3
คำอธิบาย &คู่ลบจะเป็น (0,0), (0,1), (1,0) ทั้งหมดนี้ตอบสนองความไม่เท่าเทียมกัน x 2 + y 2 <2
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
จำนวนเต็ม N เก็บจำนวนเต็มบวก
-
ฟังก์ชัน countPairs(int n) รับ n เป็นอินพุตและส่งกลับจำนวนคู่จำนวนเต็มบวกที่ไม่เป็นลบที่ชัดเจนซึ่งตอบสนองความไม่เท่าเทียมกัน −x 2 + y 2 <น.
-
count เก็บจำนวนคู่ดังกล่าว เริ่มแรก 0.
-
เริ่มจาก i=0 ถึง i2
-
ถ้า i2 + j2
-
ผลตอบแทนนับในที่สุดตามผลลัพธ์
ตัวอย่าง
#include <iostream> using namespace std; int countPairs(int n){ int count = 0; for (int i = 0; i*i < n; i++) for (int j = 0; j*j < n; j++) //x*x + y*y < n if(i*i + j*j < n) count++; return count; } int main(){ int N=4; cout << "Distinct Non-Negative integer pairs count: " << countPairs(N) ; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Distinct Non-Negative integer pairs count: 4