链接地址:http://bailian.openjudge.cn/practice/2737/

题目:

总时间限制:
1000ms
内存限制:
65536kB
描述
求2个大的正整数相除的商
输入
第1行是测试数据的组数n,每组测试数据占2行,第1行是被除数,第2行是除数。每组测试数据之间有一个空行,每行数据不超过100个字符
输出
n行,每组测试数据有一行输出是相应的整数商
样例输入
3
2405337312963373359009260457742057439230496493930355595797660791082739646
2987192585318701752584429931160870372907079248971095012509790550883793197894 10000000000000000000000000000000000000000
10000000000 5409656775097850895687056798068970934546546575676768678435435345
1
样例输出
0
1000000000000000000000000000000
5409656775097850895687056798068970934546546575676768678435435345
提示
除法比较困难,建议大家最后做这题

思路:

套用大整数模板

代码:

 #include <iostream>
#include <cstdio>
#include <string>
using namespace std; string sub(string s1,string s2)
{
int flag = ;
if(s1.length()<s2.length() || (s1.length()==s2.length() && s1 < s2))
{
flag = ;
string temp=s1;
s1=s2;
s2=temp;
} int i,j;
for(i=s1.length()-,j=s2.length()-;i>=;i--,j--)
{
s1[i]=char(s1[i]-(j>=?s2[j]-'':)); //注意细节
if(s1[i]-''<)
{
s1[i]=char(s1[i] + );
s1[i-]--;
}
} for(i = ; i < s1.length(); i++)
{
if(s1[i] != '') break;
}
if(i == s1.length()) i = s1.length()-;
s1 = s1.substr(i); if(flag) s1 = "-" + s1; return s1;
}
string sum(string s1,string s2)
{
if(s1.length()<s2.length())
{
string temp=s1;
s1=s2;
s2=temp;
}
int i,j;
for(i=s1.length()-,j=s2.length()-;i>=;i--,j--)
{
s1[i]=char(s1[i]+(j>=?s2[j]-'':)); //注意细节
if(s1[i]-''>=)
{
s1[i]=char((s1[i]-'')%+'');
if(i) s1[i-]++;
else s1=''+s1;
}
}
return s1;
} string div(string s1,string s2)
{
string res = "";
if(s1.length()<s2.length() || (s1.length()==s2.length() && s1 < s2))
{
return "";
} int i;
int sub_length = s1.length() - s2.length();
for(i = sub_length; i >= ; i--)
{
string s3(i,'');
string s4 = s2 + s3; do
{
string temp = sub(s1,s4);
if(temp[] == '-') break;
else
{
s1 = temp;
res = sum(res,("" + s3));
}
}while();
}
return res;
} int main()
{
int n;
cin>>n;
string str1,str2;
while(n--)
{
cin>>str1>>str2;
cout<<div(str1,str2)<<endl;
}
return ;
}

最新文章

  1. MVC之前的那点事儿系列(10):MVC为什么不再需要注册通配符(*.*)了?
  2. 2014优秀的好用的20款免费jQuery插件推荐
  3. Eclipse工作常见问题总结
  4. Mosquitto-Ubuntu 14.04快速安装问题解决
  5. 禁用 WebView 放大镜及拷贝粘贴弹出框
  6. WPF编译时提示“...不包含适合于入口点的静态‘Main’方法 ...”
  7. redis作为mysql的缓存服务器(读写分离) (转)
  8. javascript的insertBefore、insertAfter和appendChild简单介绍
  9. radiobutton设置样式
  10. NYOJ 5 Binary String Matching
  11. 移动web开发之touch事件
  12. 帝国cms更新报错解决办法
  13. 一文总结 Linux 虚拟网络设备 eth, tap/tun, veth-pair
  14. Hadoop记录-安装ambari hdp集群
  15. Kafka实践1--Producer
  16. 02-MySQL的安装和配置
  17. 桂电第一次程序设计 C STL 排序
  18. Packagist 镜像使用方法--composer
  19. prometheus安装、使用
  20. Django + Ansible 主机管理(有源码)

热门文章

  1. MinGW安装和使用总结
  2. java.lang.UnsupportedClassVersionError: Bad version number in .class file 解决办法
  3. hdu 5432 Pyramid Split 二分
  4. POJ_1365_Prime_Land
  5. 未定义标识符_ConnectionPtr
  6. android学习日记22--Animation动画简介
  7. 在centos上使用yum安装redis及php扩展php-redis
  8. extremeComponents(ec)源码分析
  9. 快递查询API接口对接方法
  10. 设置apt-get