ACM之數論數字根

2021-09-07 13:13:46 字數 1607 閱讀 3042

先來看一道杭電的數字根問題

此題的大大意是輸入乙個數。假設它不是一位的數字的話,那麼我們就將它的每一位都相加,相加後假設還是兩位或者很多其它的話那麼我們繼續取出它的每一位數字進行相加。知道等到單個數字為止。

初次看到這道題。並沒有看n的取值範圍,便直接寫了個int型別的。不一會就寫出來了,測試,通過。然而呢。當我提交的時候才知道。正由於沒有給出n的取值範圍,所以你須要考慮大數的問題!

當然數論的題,經常包括著我們也許不知道的定理啊,什麼的。畢竟像acm之類的題,我們通常不能直接依照題目的敘述直接做,比方求各數字,相加等等·····當然有些題還是能夠在保證時間和空間都不超的情況下,這樣試試!此題也不例外,

先是兩種依照題意做的

這篇**是我依照題意建立字元陣列寫的,但最坑的是題意的n僅僅寫了乙個more,就是這個more讓我程式卡了一天。我最初定義的字元陣列長度為1000,剛優點在這個邊界值上,1001都能夠過,注意,注意。注意!

這樣的演算法採用了遞迴的思想和第一種方法大同小異吧!

接下來便是才用9餘數的方法去求數字根,先貼**

下一道題將會介紹9餘數:

以下這道題,則既用了數字根,也用了高速冪

對於這道題,先介紹兩個重要的東西

1.九餘數定理:假設把乙個大數的各位數字相加得到乙個和。再把這個和的各位數字相加又得乙個和。再繼續作數字和。直到最後的數字和是個位數為止,

這最後的數稱為最初那個數的「數字根」。這個數字根等於原數除以9的餘數,因此這個計算過程經常稱為「合九法」

此外: 概念:乙個數對9求餘的結果。成為九餘數

有定理,某個數各個位上的數相加對九求餘等於這個數的九餘數。

樣例:1234%9=1

(1+2+3+4)%9=1

二者相等。

2.高速冪:(同餘定理)假設兩個乘積除以m的餘數等於這兩個數分別除以m的餘數積。

比如:7%3=1 5%3=2 7*5/3=2=1*2

求高速冪的**例如以下:

灰常實用的!

最後附上此題**:

——- 2016.3.29晚於電子樓311

HDU oj 數字根源

描述 通過對整數的數字求和來找到正整數的數字根 如果結果值是單個數字,則該數字是數字根。如果結果值包含兩個或更多個數字,則對這些數字求和並重複該過程。只要需要獲得一位數,這就會繼續。例如,考慮正整數24.加上2和4得到值6.由於6是單個數字,6是24的數字根。現在考慮正整數39.加上3和9的收益率1...

ACM數論總結

斷斷續續的學習數論已經有一段時間了,學得也很雜,現在進行一些簡單的回顧和總結。學過的東西不能忘啊。1 本原勾股數 概念 乙個三元組 a,b,c 其中a,b,c沒有公因數而且滿足 a 2 b 2 c 2 首先,這種本原勾股數的個數是無限的,而且構造的條件滿足 a s t,b s 2 t 2 2,c s...

ACM 數論小結

斷斷續續的學習數論已經有一段時間了,學得也很雜,現在進行一些簡單的回顧和總結。學過的東西不能忘啊。1 本原勾股數 概念 乙個三元組 a,b,c 其中a,b,c沒有公因數而且滿足 a 2 b 2 c 2 首先,這種本原勾股數的個數是無限的,而且構造的條件滿足 a s t,b s 2 t 2 2,c s...