目录
第1关:求1到n间所有整数的和
本关必读
本关任务
测试说明
第2关:用牛顿迭代法求方程的实根
本关必读
本关任务
测试说明
第3关:求若干个整数中正整数的个数、总和及平均值
本关必读
本关任务
测试说明
作为计算机编程语言的循环语句实例,求累加和几乎遍及所有的主流编程语言,理解累加和的求解过程对于掌握循环语句的精髓具有重要的作用。其中最常见的求累加和实例是求1
到100
的和。
本关要求用do-while
循环语句来求1
到n
间所有整数的和。
本关的编程任务是实现step1/SumOfDoWhile.cpp
文件中的Sum
函数,代码如下:
// 使用while循环求1到n间所有整数的和
int Sum(int n)
{
// 请在此添加实现代码
}
本关的测试文件是step1/SumOfDoWhileTest.cpp
,负责对你写的实现代码进行测试。具体说明如下:
#include
#include "SumOfDoWhile.h"
using namespace std;
int main()
{
int n;
// 从命令行读入一个int型数值
// 这个数取自测试集的输入
cin >> n;
cout << Sum(n) << endl;
}
上述main
函数从命令行读入,并将处理后的结果通过命令行输出。注意,step1/SumOfDoWhileTest.cpp
的代码不能被修改。
其中:SumOfDoWhile.h
文件代码如下:
#ifndef _ISLEAPYEAR_H_
#define _ISLEAPYEAR_H_
int Sum(int );
#endif
以下是平台对step1.SumOfDoWhileTest
的测试样例: 测试输入:10
预期输出:55
测试输入:20
预期输出:210
测试输入:50
预期输出:1275
// 使用do-while循环求1到n间所有整数的和
int Sum(int n)
{
// 请在此添加实现代码
int Sum=0;
while(n>0)
{
Sum+=n;
n--;
}
return Sum;
}
本关要求用do-while
循环语句和牛顿迭代法来求方程 4 * x * x * x + 3 * x * x + 2 * x + 1 = 0
在1
附近的一个实根。
本关的编程任务是实现step2/EquationCal.cpp
文件中的部分代码,该文件代码如下:
#include
#include
using namespace std;
#define A (4 * x * x * x + 3 * x * x + 2 * x + 1)
#define B (12 * x * x + 6 * x + 2)
int main()
{
double x = 1, a;
// 请在下面添加do-while部分实现代码
/******** Program ********/
/********** End **********/
cout << x << endl;
}
本关的测试文件仍然是step2/EquationCal.cpp
,负责对你写的实现代码进行测试。
以下是平台对step2.EquationCal
的测试样例: 测试输入:0
预期输出:* // *代表所求方程的实根
#include
#include
using namespace std;
#define A (4 * x * x * x + 3 * x * x + 2 * x + 1)
#define B (12 * x * x + 6 * x + 2)
int main()
{
double x = 1, a;
// 请在下面添加do-while部分实现代码
/******** Program ********/
do
{
a=x;
x=a-A/B;
}
while(fabs(x-a)>(1e-5));
/********** End **********/
cout << x << endl;
return 0;
}
本关要求:对于连续输入的若干个整数,输入0
结束。请用do-while
循环语句来统计其正整数的个数,并计算其中正整数的总和、平均值并输出。输入输出格式请见后续测试样例。
本关的编程任务是实现step3/IntNumCal.cpp
文件中的相应代码,该文件代码如下:
#include
using namespace std;
int main()
{
// 请在下面添加实现代码
/******** Program ********/
/********** End **********/
}
本关的测试文件仍然是step3/IntNumCal.cpp
,负责对你写的实现代码进行测试。
以下是平台对step3.IntNumCal
的测试样例: 测试输入:27 76 49 36 54 0
预期输出: n=5
avg=48.4
sum=242
测试输入:19 63 78 27 15 12 70 0
预期输出: n=7
avg=40.5714
sum=284
测试输入:27 25 50 89 18 31 80 51 1 0
预期输出: n=9
avg=41.3333
sum=372
#include
using namespace std;
int main()
{
// 请在下面添加实现代码
/******** Program ********/
float n,sum,count=0;
float avg;
do
{
cin >> n;
sum=sum+n;
count++;
}
while(n!=0);
avg=sum/(count-1);
cout << "n=" << count-1 << endl;
cout << "avg=" << avg << endl;
cout << "sum=" << sum << endl;
return 0;
/********** End **********/
}