c语言高精度除法代码,高精度除法小数点位数_weixin_39897746的博客-程序员秘密

技术标签: c语言高精度除法代码  

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

题目描述

a/b。 a,b为integer范围内的整数。 求a/b的前n位小数商。

输入

a b n

输出

一行数字

样例输入97 61 50样例输出1.59016393442622950819672131147540983606557377049180

就是有些测试点过不了,大神们帮我看看,我有何遗漏的地方

我的程序:

考虑了小数点为0

考虑了最后进位,包括进位后小数点后全为0

#include

#include

int i, a[10000]={0};

void dec(int x, int y, int z);

void output(int x, int y, int z);

int main()

{

long a, b, n;

scanf("%ld%ld%ld", &a, &b, &n);

dec(a%b, b, n);

output(a, b, n);

return 0;

}

void dec(int x, int y, int z)//计算

{

for (i=0; i<=z; i++)//多计数了1位

{

x *= 10;

a[i] = x/y;

x %= y;

}

}

void output(int x, int y, int z)//输出小数

{

int t=x/y;

if (z >= 1)

{

if (a[z] > 4)//n位下一位要四舍五入

a[z-1]++;

if (z > 1)//依次向前进位

{

for (i=z-1; i>=1; i--)

if (a[i] > 9)

{

a[i] = 0;

a[i-1]++;

}

}

if (a[0] > 9)//特殊情况,要向小数点前进位

{

a[0] = 0;

t++;

}

}

else if (z == 0)//没有小数时,四舍五入

if (a[0] > 4)//多算了一位小数来进位

t++;

printf("%ld", t);

if (z)//是否输出小数点

printf(".");

for (i=0; i

printf("%d", a[i]);

printf("\n");

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39897746/article/details/117097990

智能推荐

如何使用ThinkPHP3.2上传图片到七牛云_Holyzq的博客-程序员秘密

我们在做大型商城项目或者其他项目的时候,上传图片肯定是必不可少的,以前的项目都是把图片上传到本地,针对于图片量比较大的商城,很多企业要求把图片上传到第三方网站,比如七牛云等。这样可以大大加快网站的加载速度。那么,如何在ThinkPHP3.2框架中使用七牛云呢,接下来我们来分析详细操作步骤。一、首先进入七牛云官网 https://www.qiniu.com/ 注册账号,登录后进入 管理控制台--对...

实战SSM_O2O商铺_17【商铺编辑】Dao层开发_小小工匠的博客-程序员秘密

概述ShopDao接口ShopDao映射文件单元测试概述ShopDao接口com.artisan.o2o.dao.ShopDao.java 新增查询接口/** * * * @Title: selectShopById * * @Description: 根据shopId查询shop * ...

视频教程-微信小游戏第二季:飞扬的肖恩/弹球打砖块-Cocos_weixin_34234020的博客-程序员秘密

微信小游戏第二季:飞扬的肖恩/弹球打砖块 知识传播美丽,分享传递快乐。作者主...

hihoCoder 1039 字符消除_siukwan的博客-程序员秘密

hihoCoder 1039 字符消除题目地址:http://hihocoder.com/problemset/problem/1039 时间限制:1000ms 单点时限:1000ms 内存限制:256MB描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母”ABC”的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子

python小结教学_python教学_weixin_39770506的博客-程序员秘密

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。CPython当我们从Python官方网站下载并安装好Pyt...

随便推点

HDU 1556 Color the ball 树状数组-区间更新-模板_hi_just_do_it的博客-程序员秘密

做了这道题发现树状数组的(单点更新和区间求和)------(区间更新和单点求和)是不一样但是又有联系。单点更新的操作和区间更新的操作是一样的,但是含义不同。通过单个点的修改来表示修改了整个区间,前缀和则表示单个点的和。用树状数组最方便的还是代码比较简洁~哈哈哈,不过我还是得理解理解

Vue用到的fastclick.js_fastclick.js vue_述。一牛的博客-程序员秘密

fastclick.js(免费下载);(function () { 'use strict'; /** * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. * * @codingstandard ftlabs-jsv2 * @copyright The Financial Times Limited [All Rights Reserved] * @l

配置Tomcat-8.5. JVM内存参数_宝贝企鹅的博客-程序员秘密

配置Tomcat-8.5.15 JVM内存参数apache-tomcat-8.5.15与之前的版本存在些许差异,配置方式有所改变,并且针对JVM一些参数不再支持。故本文档主要简介一下如何在apache-tomcat-8.5.15容器上配置JVM内存参数。1、创建环境变量文件在%TOMCAT_HOME%\bin\目录下创建文件setenv.bat,...

Android音频焦点详解(上)_android 长焦点和短焦点_饭小粒的博客-程序员秘密

2017年开年第一篇博客,很早就想总结一下Android音频的相关知识。 今天我们先来看一下音频焦点的相关内容,分为上下篇,上篇主要介绍音频焦点在媒体类应用中的使用,下篇进行源码分析,我们学习源码不仅仅是为了更深入的了解,更主要的目的是学习Android的设计架构,为我们在平时开发过程中提供一些优秀的设计思想。一 焦点在Android应用中的作用我们的手机里经常会安装一些媒体类的应用,例如网易云...

时间戳与日期格式相互转换_os.path.getctime转换日期_wangyanglongcc的博客-程序员秘密

1. 时间戳转年月日时分秒import time# 创建一个时间戳t = 1533880334# 1. 使用time.localtime将时间戳转成日期格式t = time.localtime(t)# time.struct_time(tm_year=2018, tm_mon=8, tm_mday=10, tm_hour=13, tm_min=52, tm_sec=14, tm_wday=4, tm_yday=222, tm_isdst=0)# 2. 使用time.strftime将日期转成日

推荐文章

热门文章

相关标签