1559 - 整数和

通过次数

0

提交次数

0

时间限制 : 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) ;
	  }
  }
}