目录
第1关:判断一个整数是奇数还是偶数
本关必读
奇数:在整数中不能被2整除的数称为奇数(英文:Odd),通常也称为单数。如:-1、1、-3、3、-5、5、-7、7等等。
偶数:在整数中,能被2整除的数,叫做偶数(英文:Even)。如:0、-2、2、-4、4、-6、6等等。
本关任务
本关的任务是判断一个整数是奇数还是偶数,若为偶数则返回1,若为奇数则返回0。即实现step1/OddOrEven.cpp中的OddOrEven(int n)带值函数:
// 判断整数的奇偶性int OddOrEven(int n){// 请在此添加实现代码}
测试说明
本关的测试文件是step1/OddOrEvenTest.cpp,负责对你写的实现代码进行测试。具体说明如下:
#include <iostream>#include "OddOrEven.h"using namespace std;int main(){int n;// 从命令行读入一个整数// 这个数取自测试集的输入cin >> n;OddOrEven(n) == 1 ? (cout << n << " is even number!" << endl) : (cout << n << " is odd number!" << endl);}
上述main函数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断OddOrEven(int n)是否正确实现。
注意,step1/OddOrEvenTest.cpp 的代码不能被修改。
其中:OddOrEven.h文件代码如下:
#ifndef _ISLEAPYEAR_H_#define _ISLEAPYEAR_H_int OddOrEven(int );#endif
以下是平台对step1.OddOrEvenTest的测试样例:
测试输入:2
预期输出:2 is even number!
测试输入:-1
预期输出:-1 is odd number!
开始你的任务吧,祝你成功!
//判断整数的奇偶性
int OddOrEven(int n)
{
if(n=0||n%2==0)
return 1;
else
return 0;
// 请在此添加实现代码
}
第2关:判断一个年份是否为闰年
本关必读
闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1-12月分别为:31天、29天、31天、30天、31天、30天、31天、31天、30天、31天、30天、31天)。
闰年计算方法:
- 普通年能被
4整除且不能被100整除的为闰年。 - 世纪年能被
400整除的是闰年。
本关任务
本关任务是判断一个年份是否为闰年,若为闰年则返回1,否则返回0。即其代码位于step2/IsLeapYear.cpp文件,定义如下:
// 判断一个年份是否为闰年int IsLeapYear(int year){// 请在此填入实现代码}
测试说明
本关的测试文件是step2/IsLeapYearTest.cpp,负责对你写的实现代码进行测试。
代码说明详见注释。
注意,step2/IsLeapYearTest.cpp的代码不能被修改。
#include <iostream>#include "IsLeapYear.h"using namespace std;int main(){int year;// 从命令行读入一个正整数year// 这个数取自测试集的输入cin >> year;IsLeapYear(year) == 1 ? (cout << "Yes" << endl) : (cout << "No" << endl);}
其中:IsLeapYear.h文件代码如下:
#ifndef _ISLEAPYEAR_H_#define _ISLEAPYEAR_H_int IsLeapYear(int );#endif
以下是平台对step2.IsLeapYearTest的测试样例:
测试输入:2012
预期输出:Yes
测试输入:2015
预期输出:No
测试输入:2001
预期输出:No
开始你的任务吧,祝你成功!
// 判断一个年份是否为闰年
int IsLeapYear(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
return 1;
else
return 0;
// 请在此添加实现代码
}
第3关:判断一个整数是否是2的幂
本关必读
幂指乘方运算的结果。a^n指将a自乘n次,a称为幂的底数,n称为幂的指数,乘方的结果叫做a的n次幂。如:2^n即称为2的n次幂。
本关任务
本关任务是判断一个整数是否是2的幂,其代码位于step3/IsPowerOfTwo.cpp文件,定义如下:
// 判断一个整数是否是2的幂bool IsPowerOfTwo(int n){// 请在此提供实现代码}
测试说明
本关的测试文件是step3/IsPowerOfTwoTest.cpp,负责对你写的实现代码进行测试。
代码说明详见注释。
注意,step3/IsPowerOfTwoTest.cpp的代码不能被修改。
本关的测试代码是step3/IsPowerOfTwoTest.cpp:
#include <iostream>#include "IsPowerOfTwo.h"using namespace std;int main(){int n;// 从命令行读入一个整数// 这个数取自测试集的输入cin >> n;IsPowerOfTwo(n) == true ? (cout << "Yes" << endl) : (cout << "No" << endl);}
其中:IsPowerOfTwo.h文件代码如下:
#ifndef _ISLEAPYEAR_H_#define _ISLEAPYEAR_H_bool IsPowerOfTwo(int );#endif
以下是平台对step3.IsPowerOfTwoTest的测试样例:
测试输入:4
预期输出:Yes
测试输入:10
预期输出:No
测试输入:16
预期输出:Yes
开始你的任务吧,祝你成功!
// 判断一个整数是否是2的幂
bool IsPowerOfTwo(int n)
{
int temp=1;
while(temp<=n)
{
if(temp==n)
{
return 1;
}
temp*=2;
}
return 0;
}









