目录
第2关:逆序输出不超出100000的正整数的各位数字及其位数
第1关:求两个实型变量x和y差的绝对值
本关必读
绝对值是指一个数在数轴上所对应点到原点的距离叫做这个数的绝对值,绝对值用| |来表示。
|a-b|表示a和b差的绝对值,即数轴上表示a的点和表示b的点的距离。若a>=b,则|a-b|=a-b;若a<b,则|a-b|=b-a。
本关任务
本关的任务是求两个实型变量x和y差的绝对值。即:输入实型变量x和y,若x>=y,则|x-y| = x-y;若x<y,则|x-y| = y-x。提醒:不允许使用系统函数fabs()。
要求实现step1/Subt\fractionOperation.cpp中的带值函数float Subt\fractionOperation(float x, float y):
// 输出实型变量x和y的差的绝对值float Subt\fractionOperation(float x, float y){// 请在此添加实现代码}
测试说明
本关的测试文件是step1/Subt\fractionOperationTest.cpp,负责对你写的实现代码进行测试。具体说明如下:
#include <iostream>#include "Subt\fractionOperation.h"using namespace std;int main(){float x, y;// 从命令行读入两个float型数值// 这两个数取自测试集的输入cin >> x >> y;cout << Subt\fractionOperation(x,y) << endl;}
上述main函数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断float Subt\fractionOperation(float x, float y)是否正确实现。
注意,step1/Subt\fractionOperationTest.cpp 的代码不能被修改。
其中:Subt\fractionOperation.h文件代码如下:
#ifndef _ISLEAPYEAR_H_#define _ISLEAPYEAR_H_float Subt\fractionOperation(float ,float );#endif
以下是平台对step1.Subt\fractionOperationTest的测试样例:
测试输入:153 62
预期输出:91
测试输入:2.25 6.32
预期输出:4.07
开始你的任务吧,祝你成功!
// 输出实型变量x和y的差的绝对值
float SubtractionOperation(float x, float y)
{
if(x>=y)
return (x-y);
else
return (y-x);
// 请在此添加实现代码
}
第2关:逆序输出不超出100000的正整数的各位数字及其位数
本关必读
所谓反序数,即有这样成对的数,其特点是其中一个数的各数字排列顺序完全颠倒过来,就变成另一个数,如102和201。简单的理解就是顺序相反的两个数,我们把这种成对的数互称为反序数。
逆序输出一个正整数其实就是找到这个数的反序数并输出。
本关任务
本关任务是逆序输出不超出100000的正整数的各位数字及其位数。其代码位于step2/ReverseNumber.cpp文件,定义如下:
#include <iostream>using namespace std;int main(){int x;// 从命令行读入一个不大于100000的正整数// 这个数取自测试集的输入cin >> x;// 请在下面添加实现代码/**********Program**********//********** End **********/}
测试说明
本关的测试文件仍然是step2/ReverseNumber.cpp,负责对你写的实现代码进行测试。
以下是平台对step2.ReverseNumber的测试样例:
测试输入:90807
预期输出:70809 5
开始你的任务吧,祝你成功!
#include<iostream>
using namespace std;
int main()
{
int x,i;
cin >> x;
int arr[100000];
while(x!=0)
{
arr[i]=x%10;
x=x/10;
i++;
}
int z=i;
for(int j=0;j<z;j++)
{
cout<<arr[j];
}
cout<<" "<<i<<endl;
return 0;
}
/********** End **********/
第3关:判断命令行输入的五位正整数是否是回文数
本关必读
所谓回文数,是指像12321这样“对称”的数。即:将这个数的各位数字按相反的顺序重新排列后,所得到的数和原来的数一样。
本关任务
本关任务是判断命令行输入的五位正整数是否是回文数,其代码位于step3/PalindromeNumberJudge.cpp文件,定义如下:
// 判断五位正整数是否是回文数int PalindromeNumberJudge(int x){// 请在此添加实现代码}
测试说明
本关的测试文件是step3/PalindromeNumberJudgeTest.cpp,负责对你写的实现代码进行测试。
代码说明详见注释。
注意,step3/PalindromeNumberJudgeTest.cpp的代码不能被修改。
本关的测试代码是step3/PalindromeNumberJudgeTest.cpp:
#include <iostream>#include "PalindromeNumberJudge.h"using namespace std;int main(){int x;// 从命令行读入一个正整数// 这个数取自测试集的输入cin >> x;if (PalindromeNumberJudge(x) == 1){cout << "该数是回文数!" << endl;}else if (PalindromeNumberJudge(x) == -1){cout << "该数不是回文数!" << endl;}else{cout << "对不起,您输入的不是五位正整数!" << endl;}}
其中:PalindromeNumberJudge.h文件代码如下:
#ifndef _ISLEAPYEAR_H_#define _ISLEAPYEAR_H_int PalindromeNumberJudge(int );#endif
以下是平台对step3.PalindromeNumberJudgeTest的测试样例:
测试输入:123
预期输出:对不起,您输入的不是五位正整数!
测试输入:12306
预期输出:该数不是回文数!
测试输入:12321
预期输出:该数是回文数!
开始你的任务吧,祝你成功!
// 判断五位正整数是否是回文数
int PalindromeNumberJudge(int x)
{
if(x<10000)
return 0;
int a1,a2,b1,b2;
a1=x/10000;
b1=x/1000%10;
b2=x/10%10;
a2=x%10;
if(a1==a2&&b1==b2)
return 1;
return -1;
// 请在此添加实现代码
}