【描述】
计算数列1+1/3+1/5+…的前n项之和。
【输入】
输入一个正整数n。
【输出】
输出数列前n项的和。
【输入示例】
10
【输出示例】
2.13326
【来源】
《程序设计基础——以C++为例》第2章实验10。
#include<iostream>
using namespace std;
int main(){
int i;
double sum=0;
int n;
cin>>n;
for(i=1;i<=n;i++)
{
sum+=1.0/(2*i-1); //下面是奇数,用2*i-1表示
}
cout<<sum<<endl;
return 0;
}
【描述】
某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。用45人正好搬45块砖,问有多少种搬法?
【输入】
没有输入。
【输出】
输出搬砖的男人、女人和小孩数。
【输出示例】
A,B,C
A、B、C分别表示男人、女人、小孩数。
【来源】
《程序设计基础——以C++为例》第2章实验14。
#include<iostream>
using namespace std;
int main(){
//枚举
for(int i=0;i<=15;i++)
{
//45/3==15
for(int j=0;j<=22;j++)
{
//45/2==22
for(int k=0;k<=90;k++)
{
//45/0.5==90
if((i*3+j*2+k*0.5==45) && i+j+k==45)
{
//满足题目条件则输出
cout<<i<<","<<j<<","<<k<<endl;//题目格式要求
}
}
}
}
return 0;
}
【描述】
正多边形是一个有n条边的多边形,每条边的长度side相同,每个角的度数也相同。求正多边形面积的公式如下:
要求定义和调用函数:double computeArea(int n,double side),该函数返回正多边形面积。π值为3.14159。
【输入】
输入有两行:第一行一个正整数,表示正多边形的边数;第二行一个实数,表示正多边形的边长。
【输出】
输入对应的正多边形面积。
【输入示例】
5
3
【输出示例】
15.4843
【来源】
《程序设计基础——以C++为例》第2章实验1强化练习。
#include <iostream>
#include <cmath>//原C语言:math.h
using namespace std;
double computeArea(int n, double side);
int main() {
int n;
cin >> n;
double side;
cin >> side;
cout << computeArea(n, side) << endl;
return 0;
}
/* 请在下面编写computeArea函数 */
double computeArea(int n, double side)
{
return ((n*side*side)/(4.0*tan(3.14159/n)));//根据上面公式
}
【描述】
定义和调用如下计算面积的函数:
double computeArea(double radius = 1);
double computeArea(double width, doubleheight);
double computeArea(double side1, doubleside2, double side3);
分别计算圆、矩形和三角形的面积。如果函数返回的面积为0,表示输入数据不合法。π值为3.14159。
要求用函数重载实现。
内联函数isValid用于判断三角形合法性:
inline bool isValid(double side1, doubleside2, double side3);
【输入】
输入有三行:第一行圆半径;第二行矩形宽度和高度,两个实数以空格间隔;第三行三角形边长,三个实数以空格间隔。
【输出】
分行输出对应的圆、矩形和三角形面积。
【输入示例】
5
10 10
1 2 3
【输出示例】
78.5397
100
0
【来源】
《程序设计基础——以C++为例》第2章实验7。
#include <iostream>
#include <cmath>
using namespace std;
/* 请在此处分别编写isValid函数和computeArea函数 */
const double PI=3.14159;
inline bool isValid(double side1, double side2, double side3)
{
//三角形两边之和大于第三边
if(side1+side2<side3||side2+side3<side1||side3+side1<side2)
{
return false; //有一项条件不符就不是三角形
}
return true;
}
double computeArea(double radius = 1)
{
return PI*radius*radius; //圆的面积=πr²
}
double computeArea(double width, double height)
{
return width*height; //矩形面积=长*宽
}
double computeArea(double side1, double side2, double side3)
{
if(isValid(side1,side2,side3))//判断是否三角形
{
//海伦公式
double p=(side1+side2+side3)/2.0; //p=(a+b+c)/2
return sqrt(p*(p-side1)*(p-side2)*(p-side3)); //S=sqrt[p(p-a)(p-b)(p-c)]
}
return 0;//不是则根据样例返回0
}
int main() {
double radius;
cin >> radius;
double width, height;
cin >> width >> height;
double side1, side2, side3;
cin >> side1 >> side2 >> side3;
cout << computeArea(radius) << endl;
cout << computeArea(width, height) << endl;
cout << computeArea(side1, side2, side3) << endl;
return 0;
}