歷屆試題 數字遊戲

2021-08-15 18:28:56 字數 933 閱讀 6441

問題描述

棟棟正在和同學們玩乙個數字遊戲。

遊戲的規則是這樣的:棟棟和同學們一共n個人圍坐在一圈。棟棟首先說出數字1。接下來,坐在棟棟左手邊的同學要說下乙個數字2。再下面的乙個同學要從上乙個同學說的數字往下數兩個數說出來,也就是說4。下乙個同學要往下數三個數,說7。依次類推。

為了使數字不至於太大,棟棟和同學們約定,當在心中數到 k-1 時,下乙個數字從0開始數。例如,當k=13時,棟棟和同學們報出的前幾個數依次為:

1, 2, 4, 7, 11, 3, 9, 3, 11, 7。

遊戲進行了一會兒,棟棟想知道,到目前為止,他所有說出的數字的總和是多少。

輸入格式

輸入的第一行包含三個整數 n,k,t,其中 n 和 k 的意義如上面所述,t 表示到目前為止棟棟一共說出的數字個數。

輸出格式

輸出一行,包含乙個整數,表示棟棟說出所有數的和。

樣例輸入

3 13 3

樣例輸出

17樣例說明

棟棟說出的數依次為1, 7, 9,和為17。

資料規模和約定

1 < n,k,t < 1,000,000;

看到資料範圍,肯定不能直接模擬。但是我們知道相鄰數字間的增量是乙個等差數列,那麼就可以很容易的求出下乙個數字,進而可以直接計算出下n個數字,對於超過k的數字直接求餘即可。即我們知道本次棟棟的報數,可以直接計算出他下一次的報數,這樣只需要一層迴圈就夠了。

我們用add表示棟棟每次報數的增量。可以用等差數列求和公式求出來第一次的增量。那麼利用高中數學知識可以求出下乙個add=add+n*n。(數列中每乙個元素都增加了n)。

#include#includelong long n,k,t;

int main()

printf("%lld\n",ans);

return 0;

}

歷屆試題 數字遊戲

歷屆試題 數字遊戲 時間限制 1.0s 記憶體限制 256.0mb 問題描述 棟棟正在和同學們玩乙個數字遊戲。遊戲的規則是這樣的 棟棟和同學們一共n個人圍坐在一圈。棟棟首先說出數字1。接下來,坐在棟棟左手邊的同學要說下乙個數字2。再下面的乙個同學要從上乙個同學說的數字往下數兩個數說出來,也就是說4。...

歷屆試題 數字遊戲

問題描述 棟棟正在和同學們玩乙個數字遊戲。遊戲的規則是這樣的 棟棟和同學們一共n個人圍坐在一圈。棟棟首先說出數字1。接下來,坐在棟棟左手邊的同學要說下乙個數字2。再下面的乙個同學要從上乙個同學說的數字往下數兩個數說出來,也就是說4。下乙個同學要往下數三個數,說7。依次類推。為了使數字不至於太大,棟棟...

試題 歷屆試題 數字遊戲

資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 棟棟正在和同學們玩乙個數字遊戲。遊戲的規則是這樣的 棟棟和同學們一共n個人圍坐在一圈。棟棟首先說出數字1。接下來,坐在棟棟左手邊的同學要說下乙個數字2。再下面的乙個同學要從上乙個同學說的數字往下數兩個數說出來,也就是說4。下乙個同學...