PTA基础编程题目集 6-12判断奇偶性(C语言实现)

题目描述

摘要:本文来自一道 C 语言编程题,要求实现even(n)函数判断整数奇偶性。题目给出了函数接口定义、裁判测试程序样例及输入输出示例,并提供了两种具体实现:函数部分的独立实现和包含完整main函数的完整代码实现。

开始

输入整数 n

n == 0 ?

返回 1(偶数)

n < 0 ?

n = -n

计算 temp = n % 2

temp == 1 ?

返回 0(奇数)

本题要求实现判断给定整数奇偶性的函数。

函数接口定义:

int even( int n );

其中n是用户传入的整型参数。当n为偶数时,函数返回1;n为奇数时返回0。注意:0是偶数。

裁判测试程序样例:

#include <stdio.h> int even( int n ); int main() { int n; scanf("%d", &n); if (even(n)) printf("%d is even.\n", n); else printf("%d is odd.\n", n); return 0; } /* 你的代码将被嵌在这里 */

输入样例1:

-6

输出样例1:

-6 is even.

输入样例2:

5

输出样例2:

5 is odd.

函数部分实现

/* 返回 1 表示偶数,0 表示奇数 */inteven(intn){inttemp;if(n==0)return1;/* 0 是偶数 */if(n<0)n=-n;/* 负数取正,奇偶性不变 */if(n>0)temp=n%2;/* 取余判断奇偶 */if(temp==1)return0;/* 余 1 -> 奇数 */elsereturn1;/* 否则 -> 偶数 */}

代码部分实现

/* 6-12 判断奇偶性 * 题目:实现函数 even(n),判断 n 的奇偶性。 * 返回 1 表示偶数,返回 0 表示奇数。 * 实现原理:利用“偶数对 2 取余为 0,奇数为 1”的性质。 * n==0 直接判为偶数;n<0 先取相反数不影响奇偶性; * 再用 n%2 判断:余 1 为奇数返回 0,否则返回 1。 * 时间复杂度 O(1),空间复杂度 O(1)。 */#include<stdio.h>inteven(intn);intmain(){intn;scanf("%d",&n);if(even(n))printf("%d is even.\n",n);elseprintf("%d is odd.\n",n);return0;}/* 返回 1 表示偶数,0 表示奇数 */inteven(intn){inttemp;if(n==0)return1;/* 0 是偶数 */if(n<0)n=-n;/* 负数取正,奇偶性不变 */if(n>0)temp=n%2;/* 取余判断奇偶 */if(temp==1)return0;/* 余 1 -> 奇数 */elsereturn1;/* 否则 -> 偶数 */}