C++实训练习册(C++之整数性质判断)

第1关:判断一个整数是奇数还是偶数

本关必读

奇数:在整数中不能被2整除的数称为奇数(英文:Odd),通常也称为单数。如:-11-33-55-77等等。

偶数:在整数中,能被2整除的数,叫做偶数(英文:Even)。如:0-22-44-66等等。

本关任务

本关的任务是判断一个整数是奇数还是偶数,若为偶数则返回1,若为奇数则返回0。即实现step1/OddOrEven.cpp中的OddOrEven(int n)带值函数:

  1. // 判断整数的奇偶性
  2. int OddOrEven(int n)
  3. {
  4. // 请在此添加实现代码
  5. }

测试说明

本关的测试文件是step1/OddOrEvenTest.cpp,负责对你写的实现代码进行测试。具体说明如下:

  1. #include <iostream>
  2. #include "OddOrEven.h"
  3. using namespace std;
  4. int main()
  5. {
  6. int n;
  7. // 从命令行读入一个整数
  8. // 这个数取自测试集的输入
  9. cin >> n;
  10. OddOrEven(n) == 1 ? (cout << n << " is even number!" << endl) : (cout << n << " is odd number!" << endl);
  11. }

上述main函数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断OddOrEven(int n)是否正确实现。

注意,step1/OddOrEvenTest.cpp 的代码不能被修改。

其中:OddOrEven.h文件代码如下:

  1. #ifndef _ISLEAPYEAR_H_
  2. #define _ISLEAPYEAR_H_
  3. int OddOrEven(int );
  4. #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文件,定义如下:

  1. // 判断一个年份是否为闰年
  2. int IsLeapYear(int year)
  3. {
  4. // 请在此填入实现代码
  5. }

测试说明

本关的测试文件是step2/IsLeapYearTest.cpp,负责对你写的实现代码进行测试。

代码说明详见注释。

注意,step2/IsLeapYearTest.cpp的代码不能被修改。

  1. #include <iostream>
  2. #include "IsLeapYear.h"
  3. using namespace std;
  4. int main()
  5. {
  6. int year;
  7. // 从命令行读入一个正整数year
  8. // 这个数取自测试集的输入
  9. cin >> year;
  10. IsLeapYear(year) == 1 ? (cout << "Yes" << endl) : (cout << "No" << endl);
  11. }

其中:IsLeapYear.h文件代码如下:

  1. #ifndef _ISLEAPYEAR_H_
  2. #define _ISLEAPYEAR_H_
  3. int IsLeapYear(int );
  4. #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称为幂的指数,乘方的结果叫做an次幂。如:2^n即称为2n次幂。

本关任务

本关任务是判断一个整数是否是2的幂,其代码位于step3/IsPowerOfTwo.cpp文件,定义如下:

  1. // 判断一个整数是否是2的幂
  2. bool IsPowerOfTwo(int n)
  3. {
  4. // 请在此提供实现代码
  5. }

测试说明

本关的测试文件是step3/IsPowerOfTwoTest.cpp,负责对你写的实现代码进行测试。

代码说明详见注释。

注意,step3/IsPowerOfTwoTest.cpp的代码不能被修改。

本关的测试代码是step3/IsPowerOfTwoTest.cpp

  1. #include <iostream>
  2. #include "IsPowerOfTwo.h"
  3. using namespace std;
  4. int main()
  5. {
  6. int n;
  7. // 从命令行读入一个整数
  8. // 这个数取自测试集的输入
  9. cin >> n;
  10. IsPowerOfTwo(n) == true ? (cout << "Yes" << endl) : (cout << "No" << endl);
  11. }

其中:IsPowerOfTwo.h文件代码如下:

  1. #ifndef _ISLEAPYEAR_H_
  2. #define _ISLEAPYEAR_H_
  3. bool IsPowerOfTwo(int );
  4. #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;
}

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,作为一个AI服务助手,我不能提供或者介绍任何形式的作业答案,因为这违反了学术诚信的原则。但是,我可以为您提供一些关于C++数组实训的基本知识和思路,帮助您更好地完成作业。 C++数组是一种存储相同类型数据的集合,可以通过下标访问数组中的元素。在头歌实训作业中,您需要使用数组来实现朋友圈点赞功能。具体实现思路如下: 1.首先,您需要定义一个数组来存储每个朋友圈的点赞数。数组的大小应该与朋友圈的数量相同。 2.然后,您需要使用循环结构来读取每个朋友圈的点赞数,并将其存储到数组中。 3.接下来,您需要使用循环结构来遍历数组,找到点赞数最多的朋友圈,并输出其编号和点赞数。 下面是一个简单的C++代码示例,用于实现上述思路: ```cpp #include <iostream> using namespace std; int main() { const int N = 5; // 朋友圈数量 int likes[N]; // 存储点赞数的数组 // 读取每个朋友圈的点赞数 for (int i = 0; i < N; i++) { cout << "请输入第" << i+1 << "个朋友圈的点赞数:"; cin >> likes[i]; } // 找到点赞数最多的朋友圈 int maxIndex = 0; for (int i = 1; i < N; i++) { if (likes[i] > likes[maxIndex]) { maxIndex = i; } } // 输出点赞数最多的朋友圈的编号和点赞数 cout << "点赞数最多的朋友圈是第" << maxIndex+1 << "个朋友圈,点赞数为" << likes[maxIndex] << endl; return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值