判断数正负

GitHub跳转原题关系图返回列表

对整数 N 与 0 做三分支比较,直接输出 positive / zero / negative。

OJ: roj

题目 ID: 1039

难度:入门

标签:入门语法python

创建: 2026-09-29 15:38

更新: 2026-10-04 23:13

题目描述

给定一个整数 NN(−109⩽N⩽109-10^9 \leqslant N \leqslant 10^9),判断它的正负:N>0N > 0 输出 positive,N=0N = 0 输出 zero,N<0N < 0 输出 negative。

输入:一个整数 NN。

输出:按上述规则输出对应单词。

样例输入:

text
1

样例输出:

text
positive

思路

三个条件互斥且完备,直接用 if-else if-else 三分支比较 NN 与 0,命中哪支就输出哪个单词。注意输出必须是题面的三个英文单词,不能写成 +/-/0。

参考代码

Python 版:

python
#!/usr/bin/env python3
# Author by Rainboy blog: https://rainboylv.com github: https://rainboylvx
# rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
# rainboy的学习导航网站: https://idx.roj.ac.cn
# create_at: 2026-09-29 15:40
# update_at: 2026-09-29 15:40

import sys

SIGN_NAME = {1: "positive", 0: "zero", -1: "negative"}  # 符号值 → 题面要求的单词


def sign(n: int) -> int:
    """n 的符号值:正数 1、零 0、负数 -1。"""
    return (n > 0) - (n < 0)


def solve() -> None:
    (n,) = map(int, sys.stdin.buffer.read().split())
    print(SIGN_NAME[sign(n)])


if __name__ == "__main__":
    solve()

C++ 版(同一算法):

cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-10-04 23:13
 * update_at: 2026-10-04 23:13
 */

// 判断一个整数的正负:三分支直接比较输出对应单词。
#include <cstdio>

typedef long long ll;

ll n; // 题目给的整数,范围 [-1e9, 1e9],int 也够,按惯例用 ll

int main() {
    scanf("%lld", &n);
    if (n > 0)      printf("positive\n");
    else if (n < 0) printf("negative\n");
    else            printf("zero\n");
    return 0;
}