思路

  • 小数点前的部分可以通过m/n直接计算得出

  • 小数点后的20位可通过循环进行快速计算,计算方法如下:

    1. m%=n
    2. m*=10
    3. 小数点后第i位为m/n,回到第1步
  • 第3步后,如果m%n为0,说明已经除净,此时可以break,结束循环

  • 按照这种方式计算20次后,最后几次的商可能为0但余数不一定为0,会出现如下情况:

1034/1033=1.00096 80542 11035 81800
  • 这里最后的两颗0是不允许出现的,一种处理方法是将计算的20个值存储在一个数组内,结束后,从数组尾部向前扫描,直到遇到非0值或者扫描到i=1为止,然后再对每一个数位输出。

例程

#include<iostream>
using namespace std;
int main(){
int m, n, xs[21]; //在xs[1...20]中存储20个小数位
scanf("%d%d", &m, &n);
printf("%d/%d=%d.", m, n, m/n); //输出整数部分和小数点
for(int i=1; i<=20; i++){ //循环20次计算20个小数位
m%=n;
m*=10;
xs[i]=m/n;
}
int i=20;
while(xs[i]==0 && i>1) i--; //计算有效的小数位
for(int j=1; j<=i; j++) //输出i个有效小数位
printf("%d", xs[j]);
return 0;
}

测试数据

input: 6 5               output: 1.2
input: 6 2 output: 3.0
input: 1034 1033 output: 1.000968054211035818

LFYZ-OJ ID: 1008 求A/B高精度值的更多相关文章

  1. 【9102】&&【a102】求a/b的高精度值

    Time Limit: 10 second Memory Limit: 2 MB 问题描述 计算a/b的精度值,设a,b以一般整数输入,计算结果精确到小数后20位(结果四舍五入). Input 文件输 ...

  2. OpenJudge计算概论-求出e的值

    /*======================================================================== 求出e的值 总时间限制: 1000ms 内存限制: ...

  3. hdu6035 Colorful Tree 树形dp 给定一棵树,每个节点有一个颜色值。定义每条路径的值为经过的节点的不同颜色数。求所有路径的值和。

    /** 题目:hdu6035 Colorful Tree 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6035 题意:给定一棵树,每个节点有一个颜色值.定 ...

  4. pat02-线性结构3. 求前缀表达式的值(25)

    02-线性结构3. 求前缀表达式的值(25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 算术表达式有前缀表示法.中缀表示法和后缀表示法 ...

  5. YTU 2706: 编写一个函数求最大的n值

    2706: 编写一个函数求最大的n 值. 时间限制: 1 Sec  内存限制: 128 MB 提交: 341  解决: 132 题目描述 编写一个函数求满足以下条件的最大的n.:12+22+32+-+ ...

  6. java练习题-求int类型N值的阶乘

    //求int类型N值的阶乘 public static int getNumsJieCheng(int i){ int rs = 1; if(i==0||i==1){ return i; } if(i ...

  7. PTA笔记 堆栈模拟队列+求前缀表达式的值

    基础实验 3-2.5 堆栈模拟队列 (25 分) 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Sta ...

  8. 信息竞赛进阶指南--递归法求中缀表达式的值,O(n^2)(模板)

    // 递归法求中缀表达式的值,O(n^2) int calc(int l, int r) { // 寻找未被任何括号包含的最后一个加减号 for (int i = r, j = 0; i >= ...

  9. OpenJudge 1.5.35:求出e的值

    35:求出e的值 总时间限制:1000ms 内存限制:65536kB 描述 利用公式e = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! 求e . 输入 输入只有一行,该行包 ...

随机推荐

  1. SM4加密算法实现Java和C#相互加密解密

    SM4加密算法实现Java和C#相互加密解密 近期由于项目需要使用SM4对数据进行加密,然后传给Java后台,Java后台使用的也是SM4的加密算法但是就是解密不正确,经过一步步调试发现Java中好多 ...

  2. 目录命令(dir)

    DIR 命令: // 描述: (Directory) 显示目录的文件和子目录的列表. // 语法: dir [<Drive>:][<Path>][<FileName> ...

  3. apt-get 详解&&配置阿里源

    配置apt-get的下载源 1.复制原文件备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2.编辑源列表文件 sudo vim / ...

  4. zookeeper的分布式锁

    实现分布式锁目前有三种流行方案,分别为基于数据库.Redis.Zookeeper的方案,其中前两种方案网络上有很多资料可以参考,本文不做展开.我们来看下使用Zookeeper如何实现分布式锁. 什么是 ...

  5. Html 改变原有标签属性

    内容简要: 当标签内内容 达到某以条件的时候改变当前标签属性 例如原标签为<tr> 当tr内的值符合某一条件时把<tr>变成<a>标签 例:当订单状体编程已支付的时 ...

  6. 回顾servlet生命周期(代码测试),读取初始化参数

    servlet生命周期 为简洁,本例使用注解方式来测试,代码部分很简单,只需要新建一个serlet,继承自HttpServlet,重写init,doGet,doPost,destory方法即可,使用注 ...

  7. SQL语句检索数据排序及过滤

    阅读目录 一:排序检索数据 二:过滤数据 三:高级数据过滤 四:用通配符进行过滤 回到顶部 一:排序检索数据 1.1 排序数据 比如查询数据库中表数据的时候,我们使用如下语句: select * fr ...

  8. MicroPython实例之TPYBoard开发板控制OLED显示中文

    0x00 前言 之前看到一篇文章是关于TPYBoard v102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文.最近利用空余时间搞定了这个实验,特此将实验过程及源码分享出来,方便以 ...

  9. Python中getopt()函数的使用

    在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能.目前有短选项和长选项两种格式.短选项格式为"-"加上单个字母选项:长选项为"--"加 ...

  10. 安装VM-tools

    win10系统 VMware12 Ubuntu64位安装VM-tools时所遇到的提示信息: open-vm-tools are available from the OS vendor and VM ...