小数化分数

字符串可以方便操作
首先这样

p1=s.find(.),p2=ls1

求出这个数需要pow(10,p2)做最开始的分母
我们可以先做一个做大公约数函数用于约分
声明函数:int G(int a,int b)
函数主体:if(b==0) return a;else return G(b,a%b)

代码

//(water problem)
#include<bits/stdc++.h>
//#pragma GCC optimize (3)
using namespace std;
int G(int a,int b){if(b==0) return a;else return G(b,a%b);}
int main()
{
	string s;cin>>s;int l=s.size();
	int p1=s.find('.');int p2=l-p1-1;
	int f1=pow(10,p2),f2=0;
	for(register int i=p1+1;i<l;i++) f2=f2*10+s[i]-'0';
	int x=f1;f1/=G(f1,f2);f2/=G(x,f2);
	cout<<f2<<'/'<<f1;
    return 0;
}

做完可以看看分数计算

posted @   Euouae  阅读(43)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示