您的位置:首页 > 其它

分数趣题(将真分数分解为埃及分数)

2015-01-26 16:00 176 查看
/****************************************
*  File Name  : fraction.c
*  Creat Data : 2015.1.26
*  Author     : ZY
*****************************************/

/*分数趣题*/
/*将真分数分解为埃及分数*/
/*分子为1的分数称为埃及分数。现输入一个真分数,
请将该分数分解为埃及分数*/

#include <stdio.h>
int main(void)
{
long a,b,c;
printf("Please enter a optional fraction( a / b ):");
scanf("%ld/%ld",&a,&b);
printf("It can be decomposed to :");
while(1)
{
if(b%a)//若分子不能整除分母
{
c = b/a+1;//则分解出一个分母为b/a+1的埃及分数
}
else//否则输出化简后的真分数(埃及分数)
{
c = b/a;
a = 1;
}
if(a == 1)
{
printf("1/%ld\n",c);
break;//a为1标志结束
}
else
{
printf("1/%ld + ",c);
}
a = a*c - b;//求出余数的分子
b = b*c;//求出余数的分母
if(a == 3)//若余数为3,输出最后两个埃及分数
{
printf("1/%ld + 1/%ld\n",b/2,b);
break;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: