分子为1 的分数称为埃及分数,现输入一个真分数,编写程序将该分数分解为埃及分数。如:8/11=1/2+1/5+1/55+1/110。C语言
时间: 2023-11-13 12:06:19 浏览: 101
以下是使用C语言实现将真分数分解为埃及分数的程序:
```c
#include <stdio.h>
int main() {
int numerator, denominator, integer, remainder, flag;
scanf("%d/%d", &numerator, &denominator);
integer = numerator / denominator;
remainder = numerator % denominator;
flag = 0;
while (remainder != 0) {
if (flag == 0) {
flag = 1;
} else {
printf("+");
}
printf("1/");
int temp = denominator / remainder;
if (denominator % remainder != 0) {
temp++;
}
printf("%d", temp);
remainder = remainder * temp - denominator;
denominator = denominator * temp;
}
if (integer != 0) {
if (flag == 1) {
printf("+");
}
printf("%d", integer);
}
printf("\n");
return 0;
}
```
输入格式为“分子/分母”,程序首先对真分数进行整数部分的处理,然后对余数进行迭代,每次选择一个最小的埃及分数加入到结果中,并将余数更新为新余数,直到余数为0。最后如果整数部分不为0,则将整数部分加入到结果中。
阅读全文