Time Limit: 10 second

Memory Limit: 2 MB

问题描述

计算a/b的精度值,设a,b以一般整数输入,计算结果精确到小数后20位(结果四舍五入)。

Input

文件输入仅一行,输入a和b,之间用空格隔开。

Output

输出a/b的高精度值,最后用回车结束

Sample Input

4 3

Sample Output

4/3=1.33333333333333333333

Sample Input2

6 5

Sample Output2

6/5=1.2

【题解】

这个做除法的过程实际上就是模拟笔算除法。

在处理小数的时候只要乘10,然后取模,再乘10取模就可以了。进行21次。

第21位若是大于等于5则往前进位。

***********给的测试点中,有出现答案是整数的要写成X.0的形式,即要在整数后加上.0

【代码】

#include <cstdio>

int a,b,ans[25];

void input_data()
{
scanf("%d%d",&a,&b);
} void get_ans()
{
int x= a % b;
int tt = 0;
ans[0] = a / b; //整数部分直接
for (int i =1; i <= 21;i++) //进行21次的*10和取模的过程
{
tt++;
ans[tt] = x*10 / b;
x = (x*10) % b;
}
if (ans[21] >= 5) //如果第21位大于等于5,则一直往前进位。
{
ans[20] ++;
for (int i = 20;i>=1;i--)
if (ans[i] >= 10)
ans[i]-=10,ans[i-1]++;
}
} void output_ans()
{
printf("%d/%d=",a,b); //整数和小数点可以直接输出。
printf("%d.",ans[0]);
int t = 20;
//接下来要去除末尾多余的0
while (ans[t] == 0 && t >1) t--;
for (int i = 1; i <= t;i++)
printf("%d",ans[i]);
} int main()
{
input_data();
get_ans();
output_ans();
return 0;
}

【9102】&&【a102】求a/b的高精度值的更多相关文章

  1. C语言atan2()函数:求y/x的反正切值

    头文件:#include <math.h> atan2() 函数用于求 y / x 的反正切值.其原型为:    double atan2(double y, double x); [参数 ...

  2. python_求1-2+3-4+......-100的值

    求1-2+3-4+5---100 = ? 逻辑整理: -- 本质上可以转换一下,1+3+5+--+99 -(2+4+--+100) 加减部分间隔都为2,先求1+3+5+--+99的值, 再求2+4+- ...

  3. c# 求第30位数的值

    1,1,2,3,5,8,13,21,34,55.... 求第30位数的值: 递归方法: class Program { static void Main(string[] args) { //找规律: ...

  4. POJ 2104 K-th Number ( 求取区间 K 大值 || 主席树 || 离线线段树)

    题意 : 给出一个含有 N 个数的序列,然后有 M 次问询,每次问询包含 ( L, R, K ) 要求你给出 L 到 R 这个区间的第 K 大是几 分析 : 求取区间 K 大值是个经典的问题,可以使用 ...

  5. html标签内部简单加js 一维数组求最大值 最小值两个值位置和数字金字塔图形

     html标签内部,简单加js <a href=""></a><!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  6. E. Vus the Cossack and a Field (求一有规律矩形区域值) (有一结论待证)

    E. Vus the Cossack and a Field (求一有规律矩形区域值) 题意:给出一个原01矩阵,它按照以下规则拓展:向右和下拓展一个相同大小的 0 1 分别和原矩阵对应位置相反的矩阵 ...

  7. LFYZ-OJ ID: 1008 求A/B高精度值

    思路 小数点前的部分可以通过m/n直接计算得出 小数点后的20位可通过循环进行快速计算,计算方法如下: m%=n m*=10 小数点后第i位为m/n,回到第1步 第3步后,如果m%n为0,说明已经除净 ...

  8. 求n阶方阵的值(递归)

    若有n*n阶行列式A,则: |A|=A[1][1]*M[1][1]+A[1][2]*M[1][2]+...A[1][n]*M[1][n]:其中M[1][i] 表示原矩阵元素A[1][i]的代数余子式: ...

  9. 堆排序 海量数据求前N大的值

    最(大)小堆的性质: (1)是一颗完全二叉树,遵循完全二叉树的所有性质. (2)父节点的键值(大于)小于等于子节点的键值 堆的存储 一般都用数组来表示堆,i结点的父结点下标就为(i – 1) / 2. ...

随机推荐

  1. 【习题 6-4 UVA-439】Knight Moves

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] bfs模板题 [代码] /* 1.Shoud it use long long ? 2.Have you ever test sev ...

  2. 【习题 6-1 UVA-673】Parentheses Balance

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 括号匹配. 栈模拟就好. 多种括号也是一样可以做的. [代码] #include <bits/stdc++.h> usi ...

  3. 介绍linux设备驱动编程

    目前,Linux软件工程师大致可分为两个层次: (1)Linux应用软件工程师(Application Software Engineer):       主要利用C库函数和Linux API进行应用 ...

  4. UVA 11374 Airport Express SPFA||dijkstra

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  5. 37、mipg-streamer的使用讲解

    讲解mjpg-streamer 其功能: 1.控制摄像头采集数据(通过ioctl采集数据,所有不支持CMOS,CMOS之前写驱动的时候是通过read,所有需要修改mjpg-streamer的源码或者C ...

  6. 【例题 6-6 UVA - 679】Dropping Balls

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 直接模拟会超时. 根据奇偶的规律.直接判断会往哪里走就好. 每个二叉树的节点.必然是左边和右边走的次数对半分.->奇数左边多一 ...

  7. [Nuxt] Display Vuex Data Differently in Each Page of Nuxt and Vue.js

    You often use the same data in different ways across pages. This lesson walks you through setting up ...

  8. [Angular2 Form] Nested formGroup, and usage of formGroupName

    We can nest formGorup: this.reactiveForm = fb.group({ username: [ '', [ Validators.required, Validat ...

  9. Classification and Representation

    Classification To attempt classification, one method is to use linear regression and map all predict ...

  10. [D3] Convert Dates to Numeric Values with Time Scales in D3 v4

    Mapping abstract values to visual representations is what data visualization is all about, and that’ ...