这样一段代码:求1到n的累加和。
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
cout<<(n*n+n)/2;
return 0;
}
当n取一个很大的数,比如1000000000时,发现输出的是一个负数。
而且我试着定义一个64位整型变量:
long long s = (n*n+n)/2;
cout<<s;
依然输出负数。
是cout的默认输出范围不够吗?怎么解决?
n
的类型需要是long long
才行。