高精度除以低精精度数

原 题:

       高精除以低精。输入两个正整数,求它们的商(做整除)

算法分析:

     采用按位相除法

代 码:

 #include<iostream>

#include<cstdio>

#include<cstring>

using namespace std;

int a[100],c[100];

int main()

{char bcs[100];

 int b,lena,lenc,x,i;

 gets(bcs);

  cin>>b;

 lena=strlen(bcs);

 for(i=0;i<=lena-1;i++) a[i+1]=bcs[i]-'0';//从高位开始处理,所以存储不同于加法减法乘法 

 //for(i=1;i<=lena;i++) cout<<a[i];

// cout<<endl;                      验证输入处理有无问题 

 x=0;

 for(i=1;i<=lena;i++)      //核心代码 按位相除法 

{c[i]=(x*10+a[i])/b;

x=(x*10+a[i])%b;

}

lenc=1;

while(c[lenc]==0&&lenc<lena)//商不可能比被除数位数多 

lenc++;//lenc指向第一个非零数

//cout<<lenc<<'\n';非零的超始输出位数 

for(i=lenc;i<=lena;i++)  //输出重点看起始值,需体会,从非零位输出

cout<<c[i];

cout<<endl;

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值