模拟分数的小数部分
2017-12-12 11:12
375 查看
#include<bits/stdc++.h> #include<queue> using namespace std; //函数功能求分数的小数部分 void decimal(int a,int b,int n) {// a/b 的n位小数部分 queue<int> q; int pos=0;//记录当前小数位数 int x=a,y=b; while(1) { x*=10; q.push(x/y); x%=y; if(pos>n) break;//超出目标长度 pos++; } ////将整个表达式输出 printf("a/b=%d.",a/b); while(!q.empty()) { cout<<q.front(); q.pop(); } return ; } int main() { int a,b; cin>>a>>b; decimal(a,b,5); return 0; }
应用:Code Forces Round#450.B div2
【题意】:给定分子m 分母n和一个数c,找出c在m/n的循环节第几个位置出现,没出现过输出-1。【分析】:模拟实现循环节,记录出现过的下标。
#include <bits/stdc++.h> using namespace std; typedef long long LL; typedef unsigned long long ULL; const int maxn = 1e5+1000; int i,pos=-1,c; int main() { int n,m,i; scanf("%d%d%d",&m,&n,&c); i=0; int cnt=0; int fz=m,fm=n; while(1) { i++; fz=fz*10; //printf("%d",fz/fm); if(fz/fm==c) { pos=i; break; } fz=fz%fm; if(i>=100005) break; //限制循环节长度 } printf("%d\n",pos); return 0; }
相关文章推荐
- 【模拟】分数化小数
- HDU2522(分数化小数,简单的模拟)
- 分数与小数的相互转换(模拟)
- 【USACO2.4.5】分数化小数 模拟
- 分数转小数(模拟)
- 分数转小数(模拟)
- CodeForces 727B Bill Total Value 大模拟,带小数的整数相加
- js中取小数整数部分函数
- 计算-小数相加-无限循环小数转为分数
- 分数与小数的相互转换
- HDOJ1717 小数化分数2(模拟)
- FZU 2032 Log函数问题 模拟小数加法
- 小数(包括循环小数)转化为分数方法,nyoj 1199
- jq 获取元素的宽度时,如何取得小数部分
- 怎样截取浮点数中部分小数位
- Verilog实现整数与小数部分的二进制转化为十进制
- hdu 1717小数化分数2
- [LeetCode] 167. Fraction to Recurring Decimal 分数转循环小数
- sql语句中取整数和小数部分
- 循环小数->分数备忘