題目:麗山經典50題-25
將真分數分解為分子為1之分數和。
例如:17/21=1/2 + 1/4 + 1/17 + 1/1428
提示: a / b (a:分子,b:分母)
1.通分: 17/21 - 1/2 = (17*2-21*1)/( 21*2 )
a/b - 1/ i = (a*i-b)/(b*i)
有三種情況 相同、大於、小於(不用考慮,直接省略)
相同:表示<我已經分解完畢>,列印結果
大於:可以減去 1/ i,分子=(a*i-b) 分母=(b*i)
小於:不可以相減。
#include<stdio.h> #include<stdlib.h> main(){ int a,b,m,n,i=2,j=0; printf("請輸入分子=");scanf("%i",&a); printf("請輸入分母=");scanf("%i",&b); m=a;n=b;printf("%i/%i=",a,b); while(1) { if(a*i==b) {表示<我已經分解完畢>,列印結果break;} if(a*i>b) { 可以減去 1/ i,分子=(a*i-b) 分母=(b*i) } i++; } system("PAUSE"); }
|