码迷,mamicode.com
首页 > 其他好文 > 详细

高精除~~~

时间:2018-08-20 21:55:10      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:并且   sizeof   include   存储   main   数据   amp   cout   string   

终于到高精除啦!!!

太令人开心了,我准备将高精除分为两个部分来讲

因为高精除中有高精除低精还有高精除高精

所以啊,这个先将高精除低精展现给大家

首先

因为是大整数除以小整数,所以我们运用的是按位相除法

做除法时,每一次的商都在0~9之内,每次求得的余数连接以后的若干位得到的新数被继续做除法。

因此在高精除法中还会涉及乘法和减法运算并且伴有移位处理。

为了简洁,运用0~9次循环减法取代商值。

好像可以直接上代码,

这个我找不到例题真是抱歉

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int Maxn=5005;
char a[Maxn];
int b,x[Maxn],c[Maxn],y=0;
int main() 
{
    memset(c,0,sizeof(c));
    memset(x,0,sizeof(x));
    gets(a);
    int lena=strlen(a);
    cin>>b;
    for(int i=0;i<lena;i++)
      x[i+1]=a[i]-0;//存储a数组
    for(int i=1;i<=lena;i++)//这里就是按位相除
    {
        c[i]=(y*10+x[i])/b;
        y=(y*10+x[i])%b;
    }
    int l=1;
    while(l<lena&&c[l]==0)
      l++;//删除前面的0
    for(int i=l;i<=lena;i++)
       cout<<c[i];
    return 0;    
}

其实和:

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    int a,b,c;
    cin>>a>>b;
    c=a/b;
    cout<<c;
}//对就是除法

很像啊,只是这个没法进行大数据运算罢了。

高精除~~~

标签:并且   sizeof   include   存储   main   数据   amp   cout   string   

原文地址:https://www.cnblogs.com/U58223-luogu/p/9507905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!