题目描述 Description
除法是计算中的基础运算,虽然规则简单,但是位数太多了,也难免会出错。现在的问题是:给定任意位数(足够大就可以啦O(∩_∩)O)的一个被除数,再给定一个long long类型的除数,求它的余数,并保留小数点后s位。
 输入输出格式 Input/output
输入格式:
三行:
第一行:被除数
第二行:除数
第三行:一个数s,表示保留小数点后s位
输出格式:
第一行:表示计算的结果(不可以有前导0,保留小数点后s位)
第二行:余数
 输入输出样例 Sample input/output
样例测试点#1
输入样例#1:
123456789
123
30
输出样例#1:
1003713.731707317073170731707317073170
90
样例测试点#2
输入样例#2:

2456465461515648654411465465465413231256456445621
15
30

输出样例#2:

163764364101043243627431031031027548750430429708.066666666666666666666666666666
1

思路:这题的数据量很大,大数据类型的,如果直接计算是不可取的,必须用高精度算法。
这里可以分为几个函数来计算:
①高精度除以单精度法函数:专题里面会细细地讲的
倒序输出函数:专题里面会细细地讲的
③手算模拟了一下除法的过程,余数*10再除以除数,就得了第一位小数点后的数,保存到k里面,输出再把余数赋值为余数-除数*K(想不通的,可以手动模拟一下过程,其实很简单的)然后一位一位输出即可
代码如下:
 #include <stdio.h>
#include <string.h>
#define MaxLength 99999
int x,q;//q是备份余数用的
void output(int c[])//倒序输出函数
{
int i;
for(i=c[];i>=;i--)
printf("%d",c[i]);
}
/*============================================================================*/
void div(char strA[],int b,int c[])//高精度数a除以整数b,结果保存在c。
{
int a[MaxLength],i,lena,lenc,j,t;
memset(a,,sizeof(a));
memset(c,,sizeof(c));
if(b==)
{
c[]=;
c[]=;
return ;
}
lena=strlen(strA);
for(i=;i<lena;i++) //把串strA正序存储到数组a
a[i+]=strA[i]-'';
x=;
for(i=;i<=lena;i++) //按位相除
{
c[i]=(x*+a[i])/b;
x=(x*+a[i])%b;
}
lenc=;
while(c[lenc]==&&lenc<lena) //高位可能会有一些无意义的0,需要把lenc定好位
lenc++;
c[]=lena-lenc+;
for(j=;j<=c[];j++) //把数组c整体左移,也就是把前缀0给覆盖掉
{
c[j]=c[lenc];
lenc++;
}
for(i=,j=c[];i<j;i++,j--)
{
t=c[i];c[i]=c[j];c[j]=t;
}
q=x;//备份一下余数
output(c);//传入输出函数
}
/*============================================================================*/
int main()
{
char a[MaxLength];
int b[MaxLength];
int i,k;
long long s,n;
gets(a);
scanf("%I64d",&n);
scanf("%d",&s);
div(a,n,b);
printf(".");
for(i=;i<s;i++)//小数点后s位
{
x=x*;
k=x/n;
printf("%d",k);
x=x-n*k;
}
printf("\n%d\n",q);
return ;
}

大数据除法(Large data division)的更多相关文章

  1. 大数据去重(data deduplication)方案

    数据去重(data deduplication)是大数据领域司空见惯的问题了.除了统计UV等传统用法之外,去重的意义更在于消除不可靠数据源产生的脏数据--即重复上报数据或重复投递数据的影响,使计算产生 ...

  2. 学习笔记之大数据(Big Data)

    300 秒带你吃透大数据! https://mp.weixin.qq.com/s/VWaqRig6_JBNYC1NX7NQ-Q 手把手教你入门Hadoop(附代码&资源) https://mp ...

  3. C语言实现大数据除法

    本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格 ...

  4. hadoop(一)之初识大数据与Hadoop

    前言 从今天起,我将一步一步的分享大数据相关的知识,其实很多程序员感觉大数据很难学,其实并不是你想象的这样,只要自己想学,还有什么难得呢? 学习Hadoop有一个8020原则,80%都是在不断的配置配 ...

  5. Hadoop基础之初识大数据与Hadoop

    前言 从今天起,我将一步一步的分享大数据相关的知识,其实很多程序员感觉大数据很难学,其实并不是你想象的这样,只要自己想学,还有什么难得呢? 学习Hadoop有一个8020原则,80%都是在不断的配置配 ...

  6. 一表格简单明了区分BI和大数据

    大数据和BI两词现阶段处于刷屏状况,但是,很多人对于这两词确傻傻分不清.改怎么区别呢?本文将从概念.应用.发展趋势等多个角度对大数据和BI进行区分. BI(Business Intelligence) ...

  7. 大数据 Hadoop,Spark和Storm

    大数据(Big Data)   大数据,官方定义是指那些数据量特别大.数据类别特别复杂的数据集,这种数据集无法用传统的数据库进行存储,管理和处理.大数据的主要特点为数据量大(Volume),数据类别复 ...

  8. Hadoop生态圈-大数据生态体系快速入门篇

    Hadoop生态圈-大数据生态体系快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.大数据概念 1>.什么是大数据 大数据(big data):是指无法在一定时间 ...

  9. Spark记录-大数据简介

    什么是大数据 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信 ...

随机推荐

  1. Hex Workshop(16进制编辑利器) 6.7.2绿色版

    软件名称: Hex Workshop 6.7.2绿色版(16进制编辑利器) 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 1.8MB 图片预览: 软件简介 ...

  2. tomcat配置https方法

    利用tomcat服务器配置https双向认证 步骤 1.为服务器生成证书进入控制台,切换到%JAVA_HOME%/bin目录,具体操作略. 使用keytool为Tomcat生成证书,假定目标机器的域名 ...

  3. CSU 1812 三角形和矩形

    湖南省第十二届大学生计算机程序设计竞赛$J$题 计算几何. #pragma comment(linker, "/STACK:1024000000,1024000000") #inc ...

  4. 利用java实现抽奖转盘(着重安全控制)

    本文是针对jquery 实现抽奖转盘作者的一个补充(主要用java去实现转盘结果生成及存储,解决jquery 做法 非法用户采用模拟器实现改变转盘值的风险性),针对jQuery的具体实现,请看案例:h ...

  5. Windows 多用户远程访问 Ubuntu 14.04桌面

    使用X2Go实现多用户远程访问 Ubuntu 14.04桌面:VNC也可以,但是每次连接VNC就回新创建一个Seession,想要在下次远程登录的时候返回上次活动,需要记住开启的线程,这种繁琐的操作不 ...

  6. mac xcode 快捷键

    shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示 ...

  7. 反射机制(reflection)动态相关机制

    功能:动态获取类的信息以及动态调用对象的方法. Java反射机制主要提供了以下功能: 1.在运行时判断任意一个对象所属的类. 2.在运行时构造任意一个类的对象. 3.在运行时判断任意一个类所具有的成员 ...

  8. Hadoop fs 命令详解

    1. 环境:hadoop-2.6.0 2. 参数说明: hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignor ...

  9. jsp中获取json字符串,并解析

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...

  10. android的签名

    安装好了android studio,默认是使用期限为一年的签名,并且不可以发布到正式版的apk里. 在使用第三方模块或者服务的时候,经常要求提供签名及其sha1或者MD5信息. 事实上这个签名和及其 ...