JDOJ 1770 埃及分数
JDOJ 1770: 埃及分数
https://neooj.com/oldoj/problem.php?id=1770
Description
分子均为1的分数叫做埃及分数,因为古代埃及人在进行分数运算时,只使用分子是1的分数
现在输入一个真分数,将该分数分解为埃及分数
Input
输入一行,2个数代表真分数的分子分母,用‘/’隔开
Output
输出一行表示分解成埃及分数的解
Sample Input
8/11
Sample Output
8/11 = 1/2 + 1/5 + 1/55 + 1/110
应该还有一个提示,不过粘贴上来太麻烦,所以我就给省略了。
做这题很久了,刷上来来回忆一下我最0基础的时候(虽然现在也差不了多少。)
这题应该是一道模拟题,考验的就是思路转代码的能力(抱歉我现在的这个能力依然很差。
难点应该是特判?
好像还会卡格式
我就直接上代码了
#include<bits/stdc++.h> using namespace std; int main() { int a,b,c; scanf("%d/%d",&a,&b); printf("%d/%d = ",a,b); while(true) { if(b%a) c=b/a+1; else { c=b/a; a=1; } if(a==1) { printf("1/%d\n",c); break; } else printf("1/%d + ",c); a=a*c-b; b=b*c; if(a==3) { printf("1/%d + 1/%d\n",b/2,b); break; } } return 0; }