原理(手写的,以后慢慢敲上去)
【代码】
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define maxSize 10
int main()
{
int a, b;//分子,分母
int q;//商数
a = 8, b = 11;
while (1)
{
if (b%a != 0)
{
q = b / a;
}
else
{
q = b / a;//否则化成最简分数,直接输出
a = 1;
}
if (a == 1)
{
printf("1/%d", q);
break;
}
else
{
printf("1/%d+", q + 1);
}
a = a - b % a;
b = b * (q + 1);
//上面的代码已经可以求解出埃及分数,下面只是优化得到更好的解
if (a == 3 && b % 2 == 0)
{//如果分子为3,分母是偶数,可以分解成2/b + 1/b的形式,化简输出即可
printf("1/%d+1/%d", b / 2, b);
break;
}
}
return 0;
}
关注我获取更多编程方面的知识,和我共同进步吧~