A04 高精度除法

视频链接:A04 高精度算法 除法_哔哩哔哩_bilibili

 

Luogu P1480 A/B Problem

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

const int N=5005;
int a[N],b,c[N];
int len;

void div(int a[],int b,int c[]){ //a/b=c
  long long t=0;
  for(int i=len;i>=1;i--){
    t=t*10+a[i];  //被除数
    c[i]=t/b;     //存商
    t%=b;         //余数
  }
  while(c[len]==0&&len>1) len--; //去0  
}
int main(){        
  char A[N]; cin>>A>>b; len=strlen(A);
  for(int i=1;i<=len;i++) a[i]=A[len-i]-'0';
  div(a,b,c);
  for(int i=len;i;i--) cout<<c[i];  
  return 0;
}

 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

vector<int> a,c;
int b,pos;

int main(){
  string A; cin>>A>>b;
  for(int i=A.size()-1; ~i; i--)
    a.push_back(A[i]-'0');
  
  long long r=0;
  for(int i=a.size()-1; ~i; i--){
    r=r*10+a[i];      //被除数
    c.push_back(r/b); //存商
    r%=b;             //余数
  }
  for(int i=0;i<c.size();i++)
    if(c[i]){pos=i; break;}
    
  for(int i=pos;i<c.size();i++)cout<<c[i];
  return 0;
}

 

posted @ 2022-09-04 17:37  董晓  阅读(568)  评论(0编辑  收藏  举报