acm数论-数学公式

1.   i从1到n-1的 i*(i-1)的和=n*(n-1)*(2*n-4)/3

sum =∑i(i-1)=∑i^2-∑i      这里是1到n-1

=n*(n-1)*(2*n-1)/6  -  n*(n-1)/2    

=n*(n-1)*(2*n-4)/3

2.∑i^2 ==n*(n+1)*(2*n+1)/6  这里是1到n

3.1/2+1/4+1/8+1/16+1/32+1/64+1/128+1/256+...+1/(2^n)<1   该式子成立

证明:设m=1/2+1/4+1/8+1/16+1/32+1/64+1/128+1/256+...+1/(2^n)

2m=1+1/2+1/4+1/8+1/16+1/32+1/64+1/128+...+1/(2^(n+1))

两个式子相减得:m=1-1/(2^n)<1

4.判断n是否是2的幂  if ( n & ( n - 1 )) printf("NO\n");

#include<cstdio>
int main()
{
int n;
while ( scanf("%d",&n) != EOF )
{
if ( n & ( n - 1 )) printf("NO\n"); //这个方式判断n是否是2的幂,还是蛮巧妙的。
else printf("YES\n");
}
return 0;
}

posted @ 2019-05-24 18:43  saaas  阅读(142)  评论(0)    收藏  举报