swust 626 分數分解(數學)
阿新 • • 發佈:2019-01-08
分數分解(0626)
Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 350 Accepted: 156 Accepted 分子為1 的分數稱為埃及分數,現輸入一個真分數,請將該分數按下面的方法分解為埃及分數:1.若真分數的分子a能整除分母b,則真分數經過化簡就可以得到埃及分數;
2.若真分數的分子不能整除分母,則可以從原來的分數中分解出一個分母為b/a+1的埃及分數;
3.用這種方法將剩餘部分反覆分解,最後可得到結果。
如:8/11=1/2 + 1/5 + 1/37 + 1/4070。
Description 一個分數如A/B的形式 Input 見SAMPLE OUTPUT,注意空格位置在加號前後都有 Output
1 2 | 3/88 |
1 2 | 1/30 + 1/1320 |
#include <stdio.h> int main() { int n,m; int a,b; while(scanf("%d/%d",&n,&m)!=EOF) { while(m%n!=0) { a=m/n+1; n=n*a-m; m=m*a; printf("1/%d + ",a); } printf("1/%d\n",m/n); } return 0; }