分数转化为小数

很水,但是需要练速度反映。。。15分钟全部写对!!!!!!!!!!!!

#include <assert.h>
#include <algorithm>
#include <vector>
using namespace std;
class Decimal {
 public:
  int integer;
  bool recycle;
  vector<int> decimal;
};

void toDecimal(int dividend, int divisor, Decimal& decimal) {
  decimal.integer = dividend / divisor;
  int remainder = dividend % divisor, recycle = 0, end = 0, curbit = 0;
  while (remainder) {
    int cur = remainder*10/divisor;
    decimal.decimal.push_back(cur);

    if (recycle || curbit > 0)
      recycle = decimal.decimal[recycle] == cur ? recycle + 1 : 0;

    if (curbit > 0 && recycle == end) {
      decimal.decimal.resize(recycle);
      decimal.recycle = true;
      return;
    }
    ++curbit;
    if (!recycle)
      end = curbit;
    remainder = (remainder * 10) % divisor;
  }
  decimal.recycle = false;
}
int main() {

  Decimal dec;
  toDecimal(12,8,dec);

  return 0;
}

分数转化为小数,布布扣,bubuko.com

时间: 2024-10-08 11:03:37

分数转化为小数的相关文章

js实现整数转化为小数

toFixed 方法 返回一个字符串,代表一个以定点表示法表示的数字. number .toFixed(i) 参数 bumber 必选项.一个 Number 对象. i 可选项.小数点 后的数字位数.其值必须在 0 – 20 之间,包括 0 和 20. 说明 toFixed 方法返回一个以定点表示法表示的数字的字符串形式.该字符串中小数点 之前有一位有效数字,而且其后必须包含  i  数字 例如  Number(10).toFixed(2)           return 10.00

js、PHP将分数字符串转换为小数

PHP:$s = "1/3"; $s = str_replace(array('[',']','mod'),array('(',')','%'),$s);//将原三字符串中的只有在数学中才会用到的中括号[].mod等改为程序可识别的()和%echo eval("return $s;"); js:js中eval()函数是计算某个字符串,并执行其中的的 JavaScript 代码. eval($s);

第一次作业总结

计划上:在之前的想了一下怎么设计 通过定义运算符优先级 分数的话将它转化成小数 然后通过不断简化算式来计算结果 实际操作上:在定义优先级的时候 将乘除定义的比加减多一个优先级 括号内的可以用栈来实现 搜索查到(就入栈直至检查到)符号.通过将分数转化成小数 括号内先运算 乘除再运算将算式转化成最为简单的一行加减算式  但平常没有养成写注释的习惯导致后面也不大记得前面写的是什么意思了= = 性能上:是比较简单的 先判定是计算还是检查 计算的话正确输入算式就给出结果 不过并没有实现判断是否输入正确算式

样式转化

1. 转百分比 java控制器 json转百分比 NumberFormat number = NumberFormat.getPercentInstance(); number.setMaximumFractionDigits(0);//设置小数点后几位   double answerDurPre20Double = Double.parseDouble(vo.getAnswerDurPre20()); String answerDurPre20 =number.format(answerDur

计算机程序的思维逻辑 - 小数计算为什么会出错?

违反直觉的事实 计算机之所以叫"计算"机就是因为发明它主要是用来计算的,"计算"当然是它的特长,在大家的印象中,计算一定是非常准确的.但实际上,即使在一些非常基本的小数运算中,计算的结果也是不精确的. 比如: float f = 0.1f*0.1f; System.out.println(f); 这个结果看上去,不言而喻,应该是0.01,但实际上,屏幕输出却是0.010000001,后面多了个1. 看上去这么简单的运算,计算机怎么会出错了呢? 简要答案 实际上,不是

分数合法化的创建以及进行四种运算

#import <Foundation/Foundation.h> /** *  分数类 */ @interface HHFraction : NSObject { NSInteger _num;  //分子 NSInteger _den;   // 分母 } /** *  初始化方法 * *  @param num 分子 *  @param den 分母 * *  @return 返回一个初始化对象 */ + (instancetype)initWithFraction:(NSInteger

有限小数化为最简分数

/* 请将有限小数化为最简分数. Input 一个整数n 表示需要转化的小数个数: 接下来n行,每行有一个有限小数.(保证小数位数不超过9位) Output 输出有n行,每行为小数对应的最简分数 Sample Input 2 0.5 0.4 Sample Output 1/2 2/5 注意精度问题,数据保证不会有类似1.0的小数. */ #include <cstdio>#include <iostream>#include <cstring>#include <

JS 数据之间类型的转化

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 </body> 9 10 <script type="text/javascript"> 11 12 // Number 其他类型转化为 number

js 小数计算失去精度

原因:小数计算会转化为二进制 精度丢失 举个例子:4.02*10的N次方 怎么算都是错的; 常见问题 0.1+0.2 !=0.3 ... 处理:转化为小数进行计算 //加法 function addNum (a,b){  var c,d,e; try {       c = a.toString().split(".")[1].length; } catch (f) {       c = 0; }   try {       d = b.toString().split("