day 34 将真分数分解成埃及分数
1.如果有分数a/b,b%a==0;即可直接化简;
2.若不满足1,这分离出分母为(b/a)+1的埃及分数;
3.重复1,2;
#include<iostream>
using namespace std;
int a,b;
int flag=0;
int g(int m,int n){
if(m<m){swap(m,n);}
int t=1;
while(t){
t=m%n;
m=n;
n=t;
}
return m;
}
void f(int t){
a=a*t/g(b,t)-b/g(b,t);
b=b*t/g(b,t);
flag=g(a,b);
a=a/flag;
b=b/flag;
}
int main(){
int num;
printf("请输入一个真分数:");
int c[100];
scanf("%d/%d",&a,&b);
flag=g(a,b);
a=a/flag;
b=b/flag;
int i=0;
while(b%a!=0){
c[i]=(b/a)+1;
f(c[i]);
i++;
}
c[i]=b;
for(int j=0;j<=i;j++){
printf("1/%d\n",c[j]);
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架