noj一道简单的数学题
今天我突然找到一種讓自己提高成就感的學(xué)習(xí)方法,就是把自己喜歡的算法專題和自己不會(huì)的算法專題一起學(xué)習(xí),然后我選擇了kmp和數(shù)論一起,看到這到簡(jiǎn)單的數(shù)學(xué)題時(shí)第一個(gè)想法就是根據(jù)奧數(shù)小數(shù)規(guī)則來(lái)做
一個(gè)最簡(jiǎn)分?jǐn)?shù)化為小數(shù)有三種情況:
(1)如果分母只含有質(zhì)因數(shù)2和5,那么這個(gè)分?jǐn)?shù)一定能化成有限小數(shù),并且小數(shù)部分的位數(shù)等于分母中質(zhì)因數(shù)2與5中個(gè)數(shù)較多的那個(gè)數(shù)的個(gè)數(shù);(2)如果分母中只含有2與5以外的質(zhì)因數(shù),那么這個(gè)分?jǐn)?shù)一定能化成純循環(huán)小數(shù);
(3)如果分母中既含有質(zhì)因數(shù)2或5又含有以外的質(zhì)因數(shù),那么這個(gè)分?jǐn)?shù)一定能化成混循環(huán)小數(shù),并且不循環(huán)部分的位數(shù)等于分母中質(zhì)因數(shù)2與5中個(gè)數(shù)較多的那個(gè)數(shù)的個(gè)數(shù)。
http://wenku.baidu.com/view/a115698dcc22bcd127ff0c04.html
點(diǎn)擊打開(kāi)鏈接
http://wenku.baidu.com/view/53a96582d4d8d15abe234eab.html
但是由于在這道題里數(shù)不是很大,所以我們可以直接根據(jù)我們平常算小數(shù)的方法來(lái)做這道題
點(diǎn)擊打開(kāi)鏈接
#include<stdio.h> #include<string.h> #include<math.h> int ok[100010]; int main() {int t,n;scanf("%d",&t);while(t--){int temp=1;scanf("%d",&n);if(n<0){ n=-n;printf("-0.");}elseprintf("0.");memset(ok,0,sizeof(ok));while(ok[temp]!=1&&temp!=0) //當(dāng)它在出現(xiàn)的時(shí)候證明有開(kāi)始重新循環(huán)了,如果它所得余數(shù)是0的話就是已經(jīng)除盡了{(lán)ok[temp]=1;temp*=10;printf("%d",temp/n);temp%=n;}printf("\n");}return 0; }
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的noj一道简单的数学题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 今天又看到的Acm指南
- 下一篇: 康托展开式---我排第几+逆康托展开