3537 - 函数计算
时间限制 : 1 秒
内存限制 : 128 MB
f(n)=-1+2-3+..+((-1)^n)*n
你的任务是给定n,计算f(n)的值
<br />
题目输入
每组数据第一行为一个正整数n(n在int范围内)
题目输出
输出f(n)的值
输入/输出样例
输入格式
1 2 7
输出格式
-1 1 -4
C++解答
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <sstream> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #include <queue> #include <stack> #include <map> #include <set> #include <numeric> #include <cassert> #include <complex> #include <ctime> #define clr(x,a) memset(x,a,sizeof(x)) #define sz(x) (int)x.size() #define rep(i,n) for(int i=0;i<n;i++) #define repeat(i, a, b) for(int i=(a);i<=(b);i++) #define all(v) (v).begin(), (v).end() #define Unique(store) store.resize(unique(store.begin(),store.end())-store.begin()) #define X first #define Y second using namespace std; const int N=123456+10; int main () { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int n; while (cin>>n) { int ret; if (n%2==0) { ret=n/2; } else { ret=n/2-n; } cout<<ret<<endl; } return 0; }
Java解答
import java.util.Scanner; public class Main { static Scanner inputScanner=new Scanner(System.in); public static void main(String[] argsStrings) { while(inputScanner.hasNextInt()) { int n=inputScanner.nextInt(); if (n%2==0) System.out.println(n/2); else System.out.println(-(n+1)/2); } } }
Python解答
s = [int(i) for i in raw_input().split()] while (len(s)): print [s[0] / 2, -(s[0] + 1) / 2][s[0] % 2] s = [int(i) for i in raw_input().split()]