本文重点并不在这些问题本身,本文意在通过其中几个问题来记录C++的cout等价于C语言的那种输出形式。
请输出 I love Luogu!
这里有 10 10 10 个苹果,小 A 拿走了 2 2 2 个,Uim 拿走了 4 4 4 个,八尾勇拿走剩下的所有的苹果。我们想知道:
现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。
现在有 14 14 14 个苹果。要均分给 4 4 4 名同学,分不掉的苹果放回冰箱。请问:
每位同学能分得几个苹果?
一共分出去多少苹果?
把几个苹果放回冰箱?
现在需要编写一个程序,输出三个数字作为答案,每个数字一行。
现在有 500 500 500 毫升的肥宅快乐水,要均分给 3 3 3 名同学,每位同学可以分到多少毫升?请输出一个数字作为输出。保留 6 6 6 位有效数字,且不使用科学计数法。
甲列火车长 260 260 260 米,每秒行 12 12 12 米;乙列火车长 220 220 220 米,每秒行 20 20 20 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。
一个长方形长宽分别是 6 cm 6 \text{ cm} 6 cm、 9 cm 9 \text{ cm} 9 cm,求它的对角线长度( cm \text{cm} cm)。直接使用 cout
输出。
Uim 银行账户里面有 100 100 100 元。经过了下面的操作:
往里面存了 10 10 10 元;
购物花掉了 20 20 20 元;
把里面的钱全部取出。
请在每次操作后输出账户余额,并使用换行符隔开。
当半径为 r = 5 r=5 r=5,请输出圆的周长、面积和球体积。取 π = 3.141593 \pi=3.141593 π=3.141593。请直接使用 cout
输出答案,每行一个数字。
一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?
洛谷的评测任务是单位时间内均匀增加的。 8 8 8 台评测机 30 30 30 分钟可以刚好把评测队列中的程序评测完毕, 10 10 10 台评测机 6 6 6 分钟可以刚好把评测队列中的程序评测完毕,请问几台评测机可以在 10 10 10 分钟时刚好把评测队列中的程序评测完毕?
小 A 跑步速度 5 m/s 5 \text{ m/s} 5 m/s,八尾勇跑步速度 8 m/s 8 \text{ m/s} 8 m/s,八尾勇在小 A 后面 100 m 100 \text{ m} 100 m,他们同时起跑,请问需要多长时间八尾勇可以追上小 A?输出一个数字表示答案,使用 cout
直接输出。
大家都知道有 26 26 26 个英文字母,其中 A 是第一个字母。现在请编程求出:
输出一个数字和一个字母,使用换行隔开。
小 A 有两块球形橡皮泥,一个半径是 4 4 4,一个半径是 10 10 10。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体,请问这个正方体的棱长是多少?如果结果不是整数,则舍去小数点之后的数字。取 π = 3.141593 \pi = 3.141593 π=3.141593。
根据咕咕网校的预测,当课程定价为 110 110 110 元时,会有 10 10 10 人报名。如果课程价格每降低 1 1 1 元,就会多 1 1 1 名报名者(反之亦然)。如果希望总共能收到 3500 3500 3500 元学费的话,那么应该定价多少呢?已知本题有两个答案符合要求,则取较小的那一个。如果这个答案不是整数,则需四舍五入精确到整数。
输入一个正整数,表示第几个问题。
根据所输入的问题编号,输出对应问题的答案。
2
6 4
问题本身不是重点,因此先把C语言版本的代码写出:
#include
#include
#include
#include
#define OK 1
#define NO 0
typedef long long LL;
// const int INF = (int)2e9;
const double pi = 3.141593;
void prob1() {
printf("I love Luogu!\n");
}
void prob2() {
printf("6 4\n");
}
void prob3() {
printf("3\n12\n2\n");
}
void prob4() {
printf("%.6g", (double)500 / 3);
}
void prob5() {
printf("%d\n", (260 + 220) / (12 + 20));
}
void prob6() {
printf("%g\n", sqrt(6 * 6 + 9 * 9));
}
void prob7() {
printf("110\n90\n0\n");
}
void prob8() {
double r = 5.0;
printf("%g\n%g\n%g\n", (double)2 * pi * r, (double)pi * r * r, (double)4 / 3 * pi * r * r * r);
}
void prob9() {
printf("22\n");
}
void prob10() {
printf("9\n");
}
void prob11() {
printf("%g\n", (double)100 / 3);
}
void prob12(){
printf("13\nR\n");
}
void prob13() {
printf("%d\n", (int)(pow((double)4 / 3 * pi * (4 * 4 * 4 + 10 * 10 * 10), (double)1 / 3)));
}
void prob14() {
printf("50\n");
}
int main() {
int p; scanf("%d", &p);
switch (p) {
case 1:
prob1();
break;
case 2:
prob2();
break;
case 3:
prob3();
break;
case 4:
prob4();
break;
case 5:
prob5();
break;
case 6:
prob6();
break;
case 7:
prob7();
break;
case 8:
prob8();
break;
case 9:
prob9();
break;
case 10:
prob10();
break;
case 11:
prob11();
break;
case 12:
prob12();
break;
case 13:
prob13();
break;
case 14:
prob14();
break;
default:
break;
}
return 0;
}
- 其中,值得注意的是问题6,8,11 —— 题面中对这三个问题只做出直接用C++的cout输出的要求,而笔者本着练习C语言的目的,用C语言进行了多次尝试,期间发现正常使用 % l f \%lf %lf 输出并不符合测试数据的要求,因此经历了一番摸索。
- 经过多次尝试,得出一个结论 —— C++的cout对double类型的输出等价于C语言使用 % g \%g %g格式的输出,即保留非零小数位并除去多余小数零位。
每一个不曾起舞的日子,都是对生命的辜负。