ในปัญหานี้ เราได้รับตัวเลขสองตัวคือ 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