真分数分解
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
任何小于1的分数均称为真分数,而将分子为1的分数又称为埃及分数。
任何一个真分数均可以分解成若干个埃及分数之和。请编程验证。
输入:
一个真分数。
输出:
若干埃及分数累加表达式。
输入样例:
6/7
输出样例:
6/7=1/2+1/3+1/42
这道题主要注意时间问题,很容易程序超时。
时间较短的代码:
#include <stdio.h>
int main(void)
{
int a,b,c;
scanf("%d/%d",&a,&b);
printf("%d/%d=",a,b);
while(a!=1)
{
c = b/a+1;
a = a*c-b;
b = b*c;
printf("1/%d+",c);
//if(a>1)
//printf("");
if( (b % a == 0) || (a==1) )
{
printf("1/%d/n",b/a);
a = 1;
}
}
return 0;
}
本文介绍了一种将真分数分解为若干个埃及分数之和的方法,并提供了一个高效的C语言实现示例,该方法能够快速地找到合适的埃及分数组合。
1207

被折叠的 条评论
为什么被折叠?



