小数化分数
来源:互联网 发布:网站搜索优化 编辑:程序博客网 时间:2024/05/22 10:27
【问题描述】
任何小数都能表示成分数的形式,对于給定的小数,编写程序其化为最简分数输出,小数包括简单小数和循环小数。
【输入形式】
第一行是一个整数N,表示有多少组数据。
每组数据只有一个纯小数,也就是整数部分为0。小数的位数不超过9位,循环部分用()括起来。
【输出形式】
对每一个对应的小数化成最简分数后输出,占一行
【样例输入】
30.(4)0.50.32(692307)
【样例输出】
4/91/217/52
1 : #include<iostream>2 : #include<cmath>3 : #include<string>4 : using namespace std;5 : void yue(int,int);6 2 : int main() {7 2 : int n,i,j,a=0,b=0,fen=0,fen1=0,fen2=0,fenm=0;8 2 : cin>>n;9 11 : string str[n];10 2 : for(i=0; i<n; i++) cin>>str[i];11 9 : for(i=0; i<n; i++) {12 7 : a=0;13 7 : b=0;14 48 : for(j=0; j<str[i].size(); j++) {15 41 : if(str[i][j]=='(') a=j;16 41 : if(str[i][j]==')') b=j;17 : }18 7 : fen=0;19 7 : fen1=0;20 7 : fen2=0;21 7 : fenm=0;22 7 : if(a==0&&b==0) {23 4 : for(j=2; j<str[i].size(); j++) {24 2 : fen=(str[i][j]-'0')+fen;25 2 : fen*=10;26 2 : if(j==str[i].size()-1) fen/=10;27 : }28 2 : yue(fen,pow(10,str[i].size()-2));29 : } else {30 25 : for(j=2; j<b; j++) {31 20 : if(j==a) continue;32 15 : fen1=(str[i][j]-'0')+fen1;33 15 : fen1*=10;34 15 : if(j==b-1) fen1/=10;35 : }36 10 : for(j=2; j<a; j++) {37 5 : fen2=(str[i][j]-'0')+fen2;38 5 : fen2*=10;39 5 : if(j==a-1) fen2/=10;40 : }41 5 : fenm=pow(10,b-3)-pow(10,a-2);42 5 : yue(fen1-fen2,fenm);43 : }44 : }45 11 : return 0;46 : }47 7 : void yue(int x,int y) {48 : int i;49 102 : for(i=2; i<=x; i++) {50 95 : if(x%i==0&&y%i==0) {51 14 : y/=i;52 14 : x/=i;53 14 : i=2;54 : }55 : }56 7 : cout<<x<<'/'<<y<<endl;57 13 : }
阅读全文
0 0
- 小数化分数
- 小数化分数
- 小数化分数2
- 小数化分数
- 小数化分数
- 小数化分数2
- 小数化分数2
- 小数化分数
- hdu1717小数化分数
- 小数化分数2
- 小数化分数2
- 小数化分数
- 小数化分数2
- 小数化分数
- 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数
- maxwell解析MySQL日志及应用
- android webview访问html报Cross origin requests are only supported for protocol schemes: http, data, ch
- OpenStack Pike 版本新功能盘点
- 【清华集训2017模拟12.09】塔
- Dao设计模式---泛型
- 小数化分数
- ssh登录原理及免密登录
- C语言中的符号重载
- AutoVue现在支持本地2D Creo / ProE图纸
- 二分查找
- [别人的胡说八道]程序员技术练级攻略
- NIFI术语
- request获取ip
- 图解Unity3D跨平台机制(Windows, Linux, Mac OS, Android, iOS, UWP)