tft每日頭條

 > 科技

 > 二分法c語言程序詳解

二分法c語言程序詳解

科技 更新时间:2025-04-19 18:58:20

我們都知道,分數一般是可以用“分子/分母”的形式來表示的,當然也可以用小數的形式來表示。

今天這道題目呢,是收錄在基礎編程題目集當中的第二十四題,它的要求是用戶輸入一個分數,然後将它約分為最簡分式。最簡分式指的就是分子和分母不具有可以約分的成分了。

比方說6/12可以約分為1/2,而當分子大于分母時,不需要表達為整數又分數的形式,分子和分母相同時,仍然用1/1的形式來表達。

二分法c語言程序詳解(用C語言實現約分最簡分式)1

梳理邏輯

1、要輸入一個分數,分子和分母之間還有斜杠/分隔,在C語言當中呢,一般是用scanf函數來處理這個斜杠/的,這與我們之前講的差不多。

2、而至于如何約分呢,這就是這道題目最為關鍵的地方了,我們都知道給定兩個數後,比方說給了題目中的例子66和120,它們的最大公約數是多少,應該是6才對,而6是如何得到的呢,我們都聽說過歐幾裡得算法,也知道這個算法是用來求最大公約數的。

不過呢,要是不知道歐幾裡得算法也沒事,完全可以用窮舉法做出這道題目。

因為要求最大公約數,如果我們從1開始數起的話,那隻能得到最小公約數也就是1,但如果從120開始數起的話,隻要滿足小于120中的某個數(且是最大數),能夠同時被66和120整除,那很顯然,隻有6才能滿足這個條件,所以就能得到最大公約數為6。

這是分子小于分母的情況,那如果是分母小于分子的情況呢,也是同理的。

代碼實現

//約分最簡公式 #include <stdio.h> int main() { int a; int b; scanf("%d/%d",&a,&b); if(a>b){ for(int i = a;i>0;i--){ if(a%i==0&&b%i==0){ printf("%d/%d",a/i,b/i); break; } } } if(a<=b){ for(int i=b;i>0;i--){ if(a%i==0&&b%i==0){ printf("%d/%d",a/i,b/i); break; } } } }

結果測試

二分法c語言程序詳解(用C語言實現約分最簡分式)2

二分法c語言程序詳解(用C語言實現約分最簡分式)3

二分法c語言程序詳解(用C語言實現約分最簡分式)4

總結

總的來說,這道題目相較于之前的題目而言,難度有所下降,不過這裡我用到的求最大公約數的方法是用一個窮舉法,後面我會找時間來與大家探讨一下歐幾裡得算法的使用。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved