เราได้ตัวเลขมา สมมุติว่า num และภารกิจคือการคำนวณการนับจำนวนในช่วง 1 ถึง num ที่หารด้วย 2, 3, 4, 5, 6, 7, 8, 9 และ 10 ลงตัว
ป้อนข้อมูล − int num =10000
ผลผลิต − การนับตัวเลขที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัว ได้แก่ 3
คำอธิบาย − มีตัวเลข 3 ตัวตั้งแต่ 1 ถึง 10,000 ที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัวและนั่นคือ −
<ก่อนหน้า>2520-:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42, 45, 56, 60, 63, 70, 72, 84, 90, 105, 120, 126, 140, 168, 180, 210, 252, 280, 315, 360, 420, 504, 630, 840, 1260, 2520.5040-:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42 , 45, 48, 56, 60, 63, 70, 72, 80, 84, 90, 105, 112, 120, 126, 140, 144, 168, 180, 210, 240, 252, 280, 315, 336, 360 , 420, 504, 560, 630, 720, 840, 1008, 1260, 1680, 2520, 50407560-:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 27, 28, 30, 35, 36, 40, 42, 45, 54, 56, 60, 63, 70, 72, 84, 90, 105, 108, 120, 126, 135, 140, 168, 180, 189, 210, 216, 252, 270, 280, 315, 360, 378, 420, 504, 540, 630, 756, 840, 945, 1080, 1260, 1512, 1890, 2520, 3780.ป้อนข้อมูล − int num =20000
ผลผลิต − การนับตัวเลขที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัวคือ − 3
คำอธิบาย − มีตัวเลข 7 ตัวตั้งแต่ 1 ถึง 10,000 ที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัว และตัวเลขเหล่านี้คือ − 2520, 5040, 7560, 10080, 12600, 15120 และ 17640
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
อาจมีหลายวิธีในการแก้ปัญหาที่กำหนด เช่น แนวทางไร้เดียงสาและแนวทางที่มีประสิทธิภาพ มาดูแนวทางไร้เดียงสากันก่อน .
-
ใส่ตัวเลข สมมุติว่า num
-
นำอาร์เรย์และเก็บตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ไว้ในอาร์เรย์จำนวนเต็มความยาวคงที่ซึ่งเท่ากับ 9
-
นำตัวแปรชั่วคราวมานับเพื่อเก็บผลรวมของตัวเลข และอีกตัวหนึ่งคือแฟล็กเพื่อตรวจสอบว่าตัวเลขนั้นหารได้หรือไม่
-
เริ่มการวนซ้ำ For จาก i ถึง 1 จนถึง num
-
ภายในลูป ตั้งค่า num เป็น i และดัชนีเป็น 0
-
เริ่มในขณะที่ดัชนีน้อยกว่า 9 นั่นคือขนาดของอาร์เรย์
-
ตรวจสอบ IF num % arr[index++] ==0 แล้วตั้งค่าแฟล็กเป็น 1 Else ตั้งค่าแฟล็กเป็น 0
-
ตรวจสอบว่าแฟล็ก IF เป็น 1 แล้วเพิ่มจำนวนขึ้น 1
-
จำนวนคืน
-
พิมพ์ผลลัพธ์
แนวทางที่มีประสิทธิภาพ
ดังที่เราเห็นว่ามีรูปแบบในตัวเลขที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัว
จำนวนที่น้อยที่สุดที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัวคือ 2520
<ก่อนหน้า>5 * 7 * 8 * 9 =2520(n =1)5 * 7 * 8 * 9 * 2 =5040(n =2)5 * 7 * 8 * 9 * 3 =7560(n =3) .ดังที่เราเห็น 2520 เป็นปัจจัยร่วมของตัวเลขทั้งหมดที่หารด้วย 2, 3, 4, 5, 6, 7, 8, 9, 10 ลงตัว ดังนั้น หากเราหารจำนวนที่กำหนดด้วย 2520 เราจะได้ผลลัพธ์
โค้ด-1(วิธีไร้เดียงสา)
ตัวอย่าง
#includeใช้เนมสเปซ std;int count(int num){ int count =0; int แฟล็ก=0; ดัชนี int=0; int arr[9] ={2, 3, 4, 5, 6, 7, 8, 9, 10 }; สำหรับ (int i =1; i <=num; i++) { int num =i; ดัชนี=0; ในขณะที่ (ดัชนี <9) { ถ้า (จำนวน % arr [ดัชนี ++] ==0) { ธง =1; } อื่น ๆ { flag=0; หยุดพัก; } } if (flag ==1){ นับ++; } } จำนวนการส่งคืน;}int main(){ int num =10000; cout<<"การนับจำนวนที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัวคือ "< ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
นับจำนวนที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัวคือ 3Code-2(วิธีที่มีประสิทธิภาพ)
ตัวอย่าง
#includeใช้เนมสเปซ std;int main(){ int num =10000; จำนวนเต็ม =num / 2520; cout<<"นับจำนวนที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัวคือ "<<นับ; คืนค่า 0;} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
นับจำนวนที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 2 ถึง 10 ลงตัวคือ 3