1559 - 整数和
时间限制 : 1 秒
内存限制 : 32 MB
编写程序,读入一个整数N。若N为非负数,则计算N 到2N 之间的整数和;若N为一个负数,则求2N 到N 之间的整数和。
题目输入
第一行表示样例数m,接下来m行每行一个整数N,N的绝对值不超过100。
题目输出
输出m行,每行表示对应的题目所求。
输入/输出样例
输入格式
2 2 -1
输出格式
9 -3
C语言解答
#include<stdio.h> #include<stdlib.h> int cul(int num) { int count=0; for(int i=num;i<=2*num;i++) { count+=i; } return count; } int main() { int m,n; int num; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&m); if(m>=0) num=cul(m); else if(m<0) { printf("-"); num=cul(-m); } printf("%d\n",num); } //system("pause"); return 0; }
C++解答
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> using namespace std; int main() { //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int N, t; cin >> t; while (t--) { cin>>N; cout<<((N+2*N)*(abs(N)+1))/2<<endl; } return 0; }
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in) ; int N = s.nextInt() ; for (int i = 0; i < N; i++) { int n =s.nextInt() ; int sum = 0 ; if(n>=0){ for (int j = n; j <= 2*n; j++) { sum = sum + j; } }else { for (int j = 2*n; j <= n; j++) { sum = sum + j; } } System.out.println(sum) ; } } }