目录
第1关:计算舍罕王共需要多少立方的麦子赏赐他的宰相
本关必读
相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐,这位聪明的宰相指着8*8共64格的象棋说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一位,依此放完棋盘一64格,我就感激不尽了。舍罕王让人扛了一袋麦子,他要兑现他的许诺。请问舍罕王共需要多少立方的麦子赏赐他的宰相。
本关要求用for循环语句来实现。输入输出格式请见后续测试样例。
本关任务
本关的编程任务是实现step1/WheatNumberCal.cpp文件中的WheatNum函数,该文件代码如下:
#include <iostream>#include <cmath>using namespace std;// 计算舍罕王共需要多少立方的麦子赏赐他的宰相double WheatNum (){// 请在下面添加实现代码/******** Program ********//********** End **********/}int main(){cout << WheatNum () << "立方米麦子。" << endl;}
测试说明
本关的测试文件仍然是step1/WheatNumberCal.cpp,负责对你写的实现代码进行测试。
以下是平台对step1.WheatNumberCal的测试样例:
测试输入:0
预期输出:*立方米麦子。 // 其中*代表计算所得的数,该数以科学计数法表示
开始你的任务吧,祝你成功!
#include <iostream>
#include <cmath>
using namespace std;
// 计算舍罕王共需要多少立方的麦子赏赐他的宰相
double WheatNum (double j)
{
// 请在下面添加实现代码
/******** Program ********/
double n,Sum=0;
for(int i=0;i<j;i++)
{
Sum+=pow(2,i);
}
n=Sum/142000000.00;
return n;
/********** End **********/
}
int main()
{
cout << WheatNum (64) << "立方米麦子。" << endl;
}
第2关:判断一个不小于2的正整数是否为质数
本关必读
质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。
100以内的质数:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97。
本关要求用for循环语句来实现。
本关任务
本关的编程任务是实现step2/IsOfPrime.cpp文件中的IsPrime函数,代码如下:
// 判断一个不小于2的正整数是否为素数int IsPrime(int n){// 请在此填入实现代码}
测试说明
本关的测试文件是step2/IsOfPrimeTest.cpp,负责对你写的实现代码进行测试。代码说明详见注释。注意,step2/IsOfPrimeTest.cpp的代码不能被修改。
#include <iostream>#include "IsOfPrime.h"using namespace std;int main(){int n;// 从命令行读入一个int型数值// 这个数取自测试集的输入cin >> n;if(IsPrime(n)){cout << "Yes" << endl;}else{cout << "No" << endl;}}
其中:IsOfPrime.h文件代码如下:
#ifndef _ISLEAPYEAR_H_#define _ISLEAPYEAR_H_int IsPrime (int );#endif
以下是平台对step2.IsOfPrimeTest的测试样例:
测试输入:2
预期输出:Yes
测试输入:4
预期输出:No
测试输入:3
预期输出:Yes
开始你的任务吧,祝你成功!
// 判断一个不小于2的正整数是否为素数
int IsPrime(int n)
{
int a=0;
for(int i=2;i<n;i++)
{
if(n%i==0)
a++;
}
if(a==0) return 1;
else return 0;
}
第3关:根据输入的行数n输出由*构成的‘V’字图形
本关必读
用户输入正整数n,表示要输出的V字图形的行数。要求:每一行最左端第一组2个*较上一行向右缩进1个字符位置;每行最右端第二组的2个*较上一行向左缩进1个字符位置。例如,如果用户输入"5",程序输出:

上图中的第一行的最左端第1个*在该行最左端字符位置,第五行的最左端第1个*在距离该行最左端4个空格后,即第5个字符位置。最后一行的2个*后面不输出回车换行符。
本关要求用for循环语句来实现。
本关任务
本关的编程任务是实现step3/PrintVStyle.cpp文件中的相应代码,PrintVStyle.cpp文件的代码如下:
#include <iostream>using namespace std;int main(){int n, bn, ln;// 从命令行读入一个int型数值// 这一个数取自测试集的输入cin >> n;// 请在下面添加实现代码/******** Program ********//********** End **********/}
测试说明
本关的测试文件仍然是step3/PrintVStyle.cpp,负责对你写的实现代码进行测试。
以下是平台对step3. PrintVStyle的测试样例:
测试输入:3
预期输出:

测试输入:4
预期输出:

测试输入:5
预期输出:

开始你的任务吧,祝你成功!
#include<iostream>
using namespace std;
int main()
{
int n, bn, ln;
// 从命令行读入一个int型数值
// 这一个数取自测试集的输入
cin >> n;
for(ln=1;ln<n;ln++)
{
for(bn=1;bn<=ln-1;bn++)
{
cout<<" ";
}
cout<<"**";
for(bn=1;bn<=2*(n-ln-1);bn++)
{
cout<<" ";
}
cout<<"**"<<endl;
}
for(bn=1;bn<=n-1;bn++)
{
cout<<" ";
}
cout<<"**"<<endl;
}










