View Code #include<cstdio>#include<cstring>int p[15] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29};int a[15];int main(){ int i, j, k, n; while( ~scanf("%d", &n) && n) { printf("%d = ", n); int s = 1; for(i = 0; i < 13; i++) { s *= p[i]; if(... Read More
posted @ 2012-12-03 21:40 To be an ACMan Views(213) Comments(0) Diggs(0)
题意:n对数,大小为1、2、3、...、n。现要求两个1之间有1个数,两个2之间有2个数,以此类推,两个n之间有n个数,并且,数的次序可以随意的。解法:我们用sum()表示求和运算。1.设k(k=1,2,..,n)放置的第一个位置为ak,第二个位置为bk。显然有bk-ak=k+1(ak<bk)那么会有sum(bk-ak)=2+3+4+...+(n+1)=(1+2+3+...+n)+(1+1+...+1)=n*(n+3)/2。2.又因为要有2*n个位置来放置这2*n个数。则sum(ak+bk)=1+2+3+...+2*n=(1+2*n)*(2*n)/2=(1+2*n)*n。3.sum(ak Read More
posted @ 2012-12-03 20:39 To be an ACMan Views(810) Comments(0) Diggs(0)