bnu 被诅咒的代码

http://www.bnuoj.com/bnuoj/problem_show.php?pid=10792

被诅咒的代码

1000ms
65536KB
 
64-bit integer IO format: %lld      Java class name: Main
Font Size:  
Type:  
程序猿是一种近几十年来出现的新物种,是工业革命的产物。英文(Programmer Monkey)是一种非常特殊的、可以从事程序开发、维护的动物。一般分为程序设计猿和程序编码猿,但两者的界限并不非常清楚,都可以进行开发、维护工作,特别是在中国,而且最重要的一点,二者都是一种非常悲剧的存在。
最新的研究显示,程序猿有一大特点:易猝死。最近经常有某只程序猿猝死的消息直接占满题目作者人人首页的情况出现……
有一天,一只程序猿写了如下一段代码:
然后,突了个然!他就猝死了- -||
现在他剩下的工作被交给了你,请你写一个代码,能输出与这段代码相同的结果。(由于原先的代码遭到了程序猿的诅咒,直接提交他的代码或只是对他的代码进行小的改动是无法通过的……)

Input

第一行为一个整数T(T<=100)表示数据组数,接下来的T行每行一个整数n(n<109)。
 

Output

 

对于每组数据,输出一个数表示原先代码输出的结果。

 

 

Sample Input

3
1
2
3
 

Sample Output

1
3
6
 

Source

Author

temperlsyer
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<cstring>
 5 using namespace std;
 6 
 7 int a[10]={0,1,3,6,10,15,21,28,36,45};
 8 
 9 int pow_sum2(int a,int n,int m)
10 {
11     int temp=0;
12     a=a%m;
13     while(n)
14     {
15         if(n&1)
16         {
17             temp=temp+a;
18             if(temp>=m)
19             temp=temp-m;
20         }
21         a<<=1;
22         if(a>=m) a=a-m;
23         n>>=1;
24 
25     }
26     return temp;
27 }
28 
29 
30 int main()
31 {
32     int t,n;
33     while(scanf("%d",&t)>0)
34     {
35         while(t--)
36         {
37             scanf("%d",&n);
38             int hxl=n/9;
39             int tom=n%9;
40            // if(tom==0) tom=1;
41             int sum=pow_sum2(45,hxl,10000);
42             sum=(sum+a[tom])%10000;
43             printf("%d\n",sum);
44         }
45     }
46     return 0;
47 }

 

 
posted @ 2013-09-26 19:41  芷水  阅读(562)  评论(0编辑  收藏  举报