ACM數論 連分數問題

2021-08-14 22:46:58 字數 857 閱讀 3839

乙個高為n的連分數定義為 。

給出2個數,乙個用p/q的方式表達,另乙個用高度為n的連分數來表示,請你判斷他們是否相等。

輸入有多組,每組包含兩部分用來表示兩種形式的分數:第一部分是p和q(1 ≤ q ≤ p ≤ 10^18),表示分數p/q;然後是乙個數字n(1 ≤ n ≤ 90)和由n個數 ai(1 ≤ ai ≤ 10^18)代表的連分數。

如果相等請輸出「yes」,否則輸出「no」。

9 42 4

9 42 3 1

yesyes

類似這種:

思路:把數字存起來,從最後乙個開始迴圈往前不斷地加前乙個數字取倒數,不用約分,最後分子分母若同時取餘pq為零而且除以pq的結果相同,則認為相等。

**:

#include unsigned long long int num[100];

unsigned long long int continued_fraction[3];

int main()

//printf("%llu/%llu\n",continued_fraction[0],continued_fraction[1]);

}if(continued_fraction[1]/q==continued_fraction[0]/p&&continued_fraction[1]%q==0&&continued_fraction[0]%p==0)//判斷條件

printf("yes\n");

else

printf("no\n");

}return 0;

}

黃金連分數

分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...

黃金連分數

分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...

黃金連分數

分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...