最简单的问题把我给搞迷了
问题是计算1-2+3-4+5-6+……-100;规律一目了然,只是不知道怎么实现,首先不能用if,只能用while.
说是可以让定义的数(*-1),但是是负数还可以,但是如果是正数,该怎么办呀。
分数有限,知识无限,明白了这个问题,这点分数值了。
int a=1,sum=0; while(a<=100) { sum=sum+(a%2==1?a:a*(-1)); a++; } printf("%d\n",sum);
int f(int n) { int i, c, f; for(c = 0, f = i = 1; i <= n; c += i * f, i++, f = -f); return c; }2、实际该用的方法
int f(int n) { return (n & 1) * n - n / 2; }3、用宏代替
#define f(n) (((n)&1)*(n)-(n)/2)