当前位置: 首页 > news >正文

金湖建设工程质量监督网站动态背景网站

金湖建设工程质量监督网站,动态背景网站,医院网站建设建议,畅想网络网站建设推广前言 本期我们分享用C语言实现高精度除法,可通过该题测试点我点我,洛谷 p2005。 那么话不多说我们开始吧。 讲解 大家还记不记得小学的时候我们是怎么做除法的?我们以1115为例。 我们的高精度除法也将采用这个思路进行,分别用两…

前言
本期我们分享用C语言实现高精度除法,可通过该题测试点我点我,洛谷 p2005。
那么话不多说我们开始吧。
在这里插入图片描述
讲解
大家还记不记得小学的时候我们是怎么做除法的?我们以111÷5为例。
在这里插入图片描述
我们的高精度除法也将采用这个思路进行,分别用两个数组储存数字a和b的值,翻转后,从相对最高位开始相除,虽然我们不好实现除法,但是我们可以实现减法,比如11÷5可以理解为11-5-5这样商就是2余数就是1,也就是所我们可以弄一个减法的循环直到不能再减就退出循环。那么我们在相减之前就需要判断两者的大小,比如1和5明显没法再减了,我们就需要跳到下一位再重新进行减法循环。
大致的思路就是这样,下面我们用代码讲解:

#include <stdio.h>
#include<string.h>
char arra[20000] = { 0 }, arrb[20000] = { 0 };//分别储存a,b的值
int ans[20000] = { 0 };//储存商
int judge(char* arr1, char* arr2, int len)//判断是否可以相减的函数
{if (arr1[len] >'0') return 1; //如果arr1比arr2长, 则可以除 for (int i = len - 1; i >= 0; i--) {//从arr的最高位开始与arr2比较 if (arr1[i] > arr2[i]) return 1;//相同位时arr1中的数字更大,则可以相除else if (arr1[i] < arr2[i]) return 0;//相同位时arr1数字更小则不能相除}return 1;//arr1和arr2完全一样,可以相除 
}
void my_reverse(char* arr, int len)//翻转函数
{for (int i = 0; i < len - 1; i++, len--){char temp = arr[i];arr[i] = arr[len - 1];arr[len - 1] = temp;}
}
void print_div(int len1, int len2, char* arr1, char* arr2, int* ans)
{for(int i = len1-len2;i>=0;i--)//从最高位开始{while (judge(arr1 + i, arr2, len2))//判定是否可以相减{for (int j = 0; j < len2; j++)//高精度减法{if (arr1[i + j] < arr2[j]){arr1[i + j + 1] -= 1;arr1[i + j] += 10;}arr1[i + j] -= (arr2[j] - '0');}ans[i]++;//ans[i]不可能>10}}int len_ans = len1 - len2;//ans的长度while (arr1[len1] == '0' && len1 > 0) len1--;//去掉前缀无用的零 while (ans[len_ans] == 0 && len_ans > 0) len_ans--;for (int i = len_ans; i >= 0; i--)//打印商{printf("%d", ans[i]);}printf("\n");//如果想要得到余数,则直接打印arr1即可,此时arr1存储的正是余数需要余数直接把下面的注释消掉即可//if (len1 > 0||arr1[0]>='0')//  for (int i = len1 - 1; i >= 0; i--)//      printf("%c", arr1[i]);
}
int main()
{scanf("%s %s", arra, arrb);int lena = strlen(arra);//计算a和b的长度int lenb = strlen(arrb);my_reverse(arra, lena);my_reverse(arrb, lenb);print_div(lena, lenb, arra, arrb, ans);return 0;
}
http://www.yayakq.cn/news/146035/

相关文章:

  • 文山州建设局信息网站昆明做网站做的好的公司
  • 广州网站开发水平广州亦客网络青海省建设厅网站姚宽一
  • 织梦旅游网站阿里巴巴推广平台
  • php怎么给网站做spmWordPress换主题图片不适应
  • 网站友情链接怎么样做电脑网站设计公司
  • 图书网站建设方案陕煤建设集团铜川分公司网站
  • 直缝钢管网站建设网络营销实训报告
  • 广宗网站建设中国域名后缀
  • 藁城住房和城乡建设局网站海珠区有没有专门做网站的地方
  • 延边有没有做网站的网络彩票网站开发
  • 网站建设网络拓扑拓什么设计网站
  • 宁波网站建设大概要多少钱网站logo如何修改
  • 用php做的企业网站作业空间转移 wordpress
  • 嘉兴网站搭建上海小程序定制公司
  • led网站模板郑州微科网站建设
  • 国内做网站大公司有哪些整体软装设计公司
  • 苏州免费网站制作免费跨境电商平台有哪些
  • 什么行业需要做网站合理的网站结构
  • 营销网站域名设计网页设计师工资水平
  • 网站建设是多少钱门户网站服务范围
  • 门户网站解决方案建地方门户网站
  • 黄江镇网站建设公司网站建设相关职业岗位职责
  • 广州网站建设广州网络推广公司排名上海闵行区兼职网
  • 一个域名怎么做多个网站百度百科网站开发
  • 怎么建设电影网站o2o平台系统开发
  • 大气宽屏的网站网站设计网站制作
  • 做网站选择虚拟主机好是服务器公司官网首页设计
  • 专业生产车间设计图纸网站信用平台网站建设建议
  • 网站存在的问题php wordpress 代码模板
  • 网站配色 要用什么原则单位门户网站建设方案