English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

분수와 큰 수의 C ++프로그램

给定一个很大的数字,例如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