Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับการดำเนินการของประเภทที่กำหนดเพื่อลด N เป็น 0 ใน C++


เราได้รับจำนวนเต็มบวก N เป้าหมายคือการหาจำนวนการดำเนินการที่จำเป็นในการลด N เป็น 0 การดำเนินการที่ใช้คือ N=N-P โดยที่ P เป็นตัวหารเฉพาะที่เล็กที่สุดของ P

ให้เราเข้าใจด้วยตัวอย่าง

ป้อนข้อมูล − N=17

ผลผลิต − จำนวนการดำเนินการของประเภทที่กำหนดที่ต้องลด N ถึง 0 คือ − 1

คำอธิบาย − ตัวหารเฉพาะที่เล็กที่สุดของ 17 คือ 17 ตัวมันเอง ดังนั้นการดำเนินการจะใช้เพียงครั้งเดียว 17-17=0

ป้อนข้อมูล − N=20

ผลผลิต − จำนวนการดำเนินการของประเภทที่กำหนดที่ต้องลด N ถึง 0 คือ − 10

คำอธิบาย − ตัวหารเฉพาะที่เล็กที่สุดของ 20 คือ 2 ลบ 2 ซ้ำแล้วซ้ำอีก แล้วหาตัวหารเฉพาะตัวถัดไป:

<ก่อน>20%2==0, 20-2=1818%2==0, 18-2=16………..14, 12, 10, 8, 6, 4, 2, 0 ใช้การดำเนินการทั้งหมด 10 ครั้ง

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

สำหรับจำนวนคู่ของ N ทั้งหมด ตัวหารเฉพาะที่เล็กที่สุดจะเป็น 2 เสมอ และการลบ 2 จากเลขคู่ N จะทำให้ได้จำนวนคู่อีกครั้ง สำหรับจำนวนคี่ทั้งหมด ตัวหารเฉพาะที่น้อยที่สุดจะเป็นเลขคี่ หลังจากลบคี่ออกจากคี่ และจำนวนจะกลายเป็นคู่ ดังนั้น 2 จะกลายเป็นตัวหารเฉพาะที่เล็กที่สุดอีกครั้ง การหาตัวหารเฉพาะที่เล็กที่สุดให้เริ่มจาก i=2 ถึง i โดยที่ i*i

  • ใช้จำนวนเต็ม N เป็นอินพุต

  • ฟังก์ชัน N_to_Zero(int N) รับ N และส่งกลับจำนวนการดำเนินการที่จำเป็นในการลด N เป็น 0

  • ใช้ค่าเริ่มต้นนับเป็น 0

  • เริ่มจาก i=2 เริ่มสำรวจในขณะที่ (i*i)

  • ถ้า (i*i) มีค่ามากกว่า N ให้ตั้งค่า i=N

  • จำนวนการดำเนินการจะเป็น 1+(N-i)/2.

  • กำหนดให้นับเป็น 1+(N-i)/2.

  • ผลตอบแทนนับเป็นผลลัพธ์

ตัวอย่าง

#includeใช้เนมสเปซ std;int N_to_Zero(int N){ จำนวนเต็ม =0; int ผม =2; ในขณะที่((i * i)  N){ i =N; } จำนวน =1 + (N-i)/2; นับกลับ;}int main(){ int N =10; cout<<"จำนวนการดำเนินการของประเภทที่กำหนดที่จำเป็นในการลด N เป็น 0 คือ:"< 

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

จำนวนการดำเนินการของประเภทที่กำหนดที่จำเป็นในการลด N เป็น 0 คือ:5