有理小数化成分数
来源:互联网 发布:淘宝分销平台分销商 编辑:程序博客网 时间:2024/04/29 20:07
有理小数化成分数
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
char a[100],ch;
int gcd(int a,int b){return b==0?a:gcd(b,a%b);}
void simplify(int &a,int &b)
{
int t=gcd(a,b);
a/=t;b/=t;
}
int main()
{
while(true){
cout<<"您是需要把无限循环小数化成分数吗?如果是请输入y/Y,"<<endl<<"如果不是请输入n/N,代表是有限小数化成分数"<<endl;
bool judge;
cout<<"如果是无限循环小数,请输入一个小数,"<<endl<<"形如0.123代表是以123为循环的小数0.123 123 123..."<<endl;
while(true)
{
ch=getchar();
getchar();
if(ch=='y'||ch=='Y'||ch=='N'||ch=='n')break;
cout<<"输入错误,请重新输入:"<<endl;
}judge=(bool)(ch=='Y'||ch=='y');
scanf("%s",a);
int sum=0,num=0;
for(int i=2;a[i];i++)
{
int t=a[i]-'0';
sum=(sum+t)*10;
num++;
}sum/=10;
int tt=1;
while(num--){tt*=10;}
if(judge)//比如x=0.123 123 123...那么就是x=0.123+x*0.001; 也就是999x=123;x=123/999;
{
cout<<"您输入了无限循环小数,小数部分就是"<<sum<<endl;
tt--;
}
simplify(sum,tt);
cout<<"答案就是:"<<sum<<"/"<<tt<<endl;;
getchar();
}
}
- 有理小数化成分数
- 小数化成最简式分数
- HDU1717循环小数化成分数
- C#格式化成小数
- 分数->小数
- 将无限循环小数化成分数
- HDU 2522 有理分数的循环节
- 分数 TO 小数
- 小数转化为分数
- SQL 分数转小数
- 【模拟】分数化小数
- 【OJ】分数转小数
- 小数转分数
- HDACM218 小数转分数
- 分数化小数
- 分数化小数
- 分数化小数
- 分数转化为小数
- LeetCode 242. Valid Anagram 解题报告
- myeclipse Ctrl+alt+down热键和win屏幕翻转冲突问题
- poj 3162 walking race 树形dp 求符合条件区间
- wpf项目属性栏显示未加载c++项目
- jquery中,radio与select及checkBox标签选中及未选中和获取值得方法
- 有理小数化成分数
- jquery 判断鼠标移入移出位置
- 事件概念和监听事件练习2
- 谷歌技术栈(old)和业界的对比
- 微信第三方平台开发授权1:获取component_verify_ticket
- 宏观经济学思维导图
- MySQL数据库使用大总结
- ATL窗口
- Codeforces Round #374 (Div. 2) A&B