java计算1-2+3-4+...+10000000001=?

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:43:43
今天遇到一个这样的题,把我难住了
如果1000000000还好解决,
可是这里是1000000001,有十一位,已经超出了long
而且还要求性能和速度要好
请大侠们帮帮忙

把这个大数作为字符串传给计算这个表达式的函数
然后用Long.parseLong(str)将字符串转成long类型
就可以计算了
通常操作很大的数都是先当做字符串处理
另外 不建议 直接操作大数 比如 直接将其作为字符串转型后计算
还是要当作参数传递给某个方法
具体代码:
class CountExpression
{
long sum=0;
void countIt(String str)
{
long n=Long.parseLong(str);
//针对此题可以不做判断,如果那个大数是个未知,就要判
//断了,有个好习惯还是好的,呵呵
if(n%2==0)
{
sum=(-1)*n/2;
}
else
{
sum=(-1)*n/2+n;
}
System.out.print("1-2+3-......+1000000000= "+sum);
}
public static void main(String [] args)
{
new CountExpression().countIt("10000000001");
}
}

求给分…我要冲排行…

我记的有比long还大的类型吧