English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
给定一个很大的数字,例如num,另一个很大的数字,则m。任务是使用除法运算来打印商,使用模数来打印大数的余数。
输出应为Remainder = xxx; 商= yyy
假设我们有一个输入num =字符串num =" 14598499948265358486",而其他输入m = 487,则余数为430,商为29976385930729688"。
Input: num = "214755974562154868" m = 17 Output: Remainder = 15 quotient = 12632704386009109 Input: num ="214" m = 5 Output: Remainder = 4 Quotient = 42
我们将用来解决给定问题的方法-
最初将mod设置为0。
从右边开始,我们必须使用mod来找到它:mod =(mod * 10 + digit)%m。
通过quo [i] = mod / m查找商,其中i是商的位置编号。
Start 단계 1 -> Declare long long ll 단계 2 -> In function void quotientremainder(string num, ll m) Declare a vector<int> vec Set ll mod = 0 Loop For i = 0 and i < num.size() and i++ Set digit = num[i] - '0' Set mod = mod * 10 + digit Set quo = mod / m Call vec.push_back(quo) Set mod = mod % m End loop Print remainder value which is in mod Set zeroflag = 0 Loop For i = 0 and i < vec.size() and i++ vec[i] == 0 && zeroflag == 0 이면, Continue End If zeroflag = 1 vec[i]의 값을 출력합니다 End For 반환 단계 3 -> function int main() num = "14598499948265358486" ll m = 487 function quotientremainder(num, m) 호출 정지
#include <bits/stdc++.h> using namespace std; typedef long long ll; //모량 계산 기능 void quotientremainder(string num, ll m) { //큰 수의 모를 저장합니다 vector<int> vec; ll mod = 0; //단계별로 분할합니다 for (int i = 0; i < num.size(); i++) { int digit = num[i] - '0'; //모를 업데이트합니다 //현재 숫자 mod = mod * 10 + digit; //상수를 업데이트합니다 int quo = mod / m; vec.push_back(quo); //다음 반복을 위해 mod를 업데이트합니다. mod = mod % m; } cout << "\nRemainder : " << mod << "\n"; cout << "Quotient : "; //초기 0을 제거하는 상표 bool zeroflag = 0; for (int i = 0; i < vec.size(); i++) { if (vec[i] == 0 && zeroflag == 0) continue; zeroflag = 1; cout << vec[i]; } return; } //주 블록 int main() { string num ="14598499948265358486"; ll m = 487; quotientremainder(num, m); return 0; }
출력 결과
Remainder : 430 Quotient : 29976385930729688