HDU 3063 Play game
Play game
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 382 Accepted Submission(s): 158
Problem Description 幼兒園的老師總是喜歡和孩子們玩游戲,他們經常會讓孩子們圍成一圈,然後開始玩報數游戲,從其中的一個孩子開始,1,2,3,4,5......一個個報下去,如果一個孩子報錯了,那麼那個孩子就要表演節目給大家看哦。
今天,學校裡新來了一個小明老師,她突發奇想,想考考大家,於是她也出了一個游戲,游戲規則是這樣的:
1.n個孩子們站成一排,編號分別是1,2,3,4......n
2.孩子們手上都拿著一張紙,若這個孩子的編號是i,那麼紙上的數字是i*(i+1)*(i+2)
3.如果孩子只說出自己的紙上的數字, 那麼是不難的,可是, 孩子要說出,前面所有孩子和自己紙上的和.例如,晶晶的編號是2,那麼她要說1*2*3+2*3*4 = 30,其實很好懂, 對不對。。。
哎, 這可為難了小朋友啊,那麼難的題目, 而且, 那麼多的小朋友, 該怎麼辦呢,你來幫幫他們好嗎?
Input 輸入孩子的編號n(1<=n<=10^100)
Output 孩子該報出來的數,最後 mod 9999
Sample Input
1
2
3
Sample Output
6
30
90
好像挺直接的一個題目,不知道比賽的時候為什麼那麼捉急。
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int mod = 9999;
char s[10009];
ll num[11009];
ll fun(ll x)
{
return x*(x+1)*(x+2);
}
void init()
{
memset(num,0,sizeof num);
for(int i=1;i<=10009;i++)
{
num[i]=(num[i-1]+fun(i))%mod;
}
}
int main()
{
init();
while(~scanf(%s,s))
{
int len=strlen(s);
ll ans=0;
for(int i=0;i