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

โปรแกรมค้นหาส่วนที่เหลือโดยไม่ต้องใช้โมดูโลหรือตัวดำเนินการ % ใน C++


ในปัญหานี้ เราได้รับตัวเลขสองตัวคือ N และ D หน้าที่ของเราคือสร้าง โปรแกรมเพื่อค้นหาส่วนที่เหลือโดยไม่ต้องใช้โมดูโลหรือตัวดำเนินการ % ใน C++ .

คำอธิบายปัญหา − เราต้องหาเศษที่เหลือหลังจากหารจำนวน N ด้วย D แต่เราไม่สามารถใช้โมดูโลหรือตัวดำเนินการ % สำหรับสิ่งนี้ได้

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

N = 53 D = 3

ผลลัพธ์

2

แนวทางการแก้ปัญหา

ในการหาเศษที่เหลือ วิธีง่ายๆ คือหาจำนวนที่น้อยกว่า N ซึ่งเป็นผลคูณของ D และสารตั้งต้นคือตัวเลขจาก N เพื่อคืนค่าส่วนที่เหลือ

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <iostream>
using namespace std;
int findRem(int N, int D) {
   int i ;
   for(i = 0; ;i++) {
      if(D * i >= N)
         break;
   }
   return N - (D * (i-1));
}
int main(){
   int N = 45, D = 6 ;
   cout<<"The remainder after dividing "<<N<<" by "<<D<<" is"<<findRem(N, D);
   return 0;
}

ผลลัพธ์

The remainder after dividing 45 by 6 is 3

อีกวิธีหนึ่งคือการใช้ค่าจำนวนเต็มของผลหารของการหารซึ่งสามารถแยกได้โดยตรงโดยกำหนดค่าเริ่มต้นให้เป็นค่า int ใน C ++ จากนั้นคูณมันด้วย D แล้วลบค่าจาก N ให้เหลือเศษ

โปรแกรมเพื่ออธิบายการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <iostream>
using namespace std;
int findRem(int N, int D) {
   int Q = N/D;
   int R = N - (D * Q);
   return R;
}
int main(){
   int N = 45, D = 6 ;
   cout<<"The remainder after dividing "<<N<<" by "<<D<<" is"<<findRem(N, D);
   return 0;
}

ผลลัพธ์

The remainder after dividing 45 by 6 is 3