开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 16 天,点击查看活动详情
变量和常量
请输出半径 r 为 5 的圆的周长、面积以及体积。(取圆周率 为 3.141593)
- 根据公式:
- 周长
- 面积:
- 体积:
- 写出程序如下:
#include<iostream>
#include<cmath>
using namespace std;
const double PI = 3.141593;
int main() {
double r = 5;
cout << 2 * PI * r << endl;
cout << PI * r * r << endl;
cout << 4.0 / 3 * PI * pow(r, 3) << endl;
return 0;
}
运行结果为:
31.4159
78.5398
523.599
- 这里我们定义了一个常量
PI,因为程序中多次使用该圆周率 ,就可以将其定义为常量。方法就是在数据类型的前面或者后面加上const关键字。注意,常量一旦定义成功后,就不能在程序运行过程中修改,不然会出现编译错误。 - 当然,我们还可以用另一种方式来定义常量:
这种方式的名称叫宏定义。程序编译时会将这这行后面的素有代码中的#define PI 3.141593PI替换成 3.141593。
变量的命名规范:
- 由英文字母、数字以及下划线(
_)组成- 不能由数字开头
- 不能和其他关键字重复,比如
int、while等
评测机队列
题目:
洛谷的评测任务是单位时间内均匀增加的。8台评测机 30 min 可以刚好把评测队列中的程序评测完毕,10 台评测机 6 min 可以刚好把评测队列中的程序评测完毕。请问:几台评测机可以在 10 min 时刚好把评测队列中的程序评测完毕?
记录:
- 这是一道“牛吃草问题”的模型
- 假设 1 台评测机 1min 可以评测出 1 份程序
- 8 台评测机 30 分钟内可以评测 240 道题
- 10 台评测机 6 分钟内可以评测 60 道题
- 在这相差 24 分钟内,就增加了 180 道题,那么可以计算出增加的速度为 180/24 = 7.5 道题
- 因为 6 分钟内增加了 6 * 7.5 = 45 道题,那么就证明原先有 60 - 45 = 15 道题
- 题目问的是 10 分钟内需要多少台机器才能刚好评测完毕,那么首先算出需要评测多少道题目,即 10 * 7.5 + 15 = 90 道,
- 又因为之前假设 1 台评测机 1min 可以评测出 1 份程序,那么十分钟内就需要 9 太评测机。
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
// 8 台评测机 30 分钟内可以评测 240 道题
int n1 = 8, t1 = 30;
// 10 台评测机 6 分钟内可以评测 60 道题
int n2 = 10, t2 = 6;
// 几台评测机可以在 10 min 时刚好把评测队列中的程序评测完毕?
int t3 = 10;
// 这相差 24 分钟内,就增加了 180 道题,计算出增长速度 incRate
double incRate = (1.0 * n1 * t1 - n2 * t2) / (t1 - t2);
// 求出原先有多少道题 initNum
double initNum = n1 * t1 - incRate * t1;
// 计算出答案 :ans
double ans = (initNum + t3 * incRate) / t3;
cout << ans << endl;
return 0;
}
运行结果为:
9