C++
附加ACACACACACAC代码噢噢噢噢!
# 【深基1-2】小学数学 N 合一
## 题目描述
### 问题 1
请输出 `I love Luogu!`
### 问题 2
这里有 $10$ 个苹果,小 A 拿走了 $2$ 个,Uim 拿走了 $4$ 个,小 B 拿走剩下的所有的苹果。我们想知道:
1. 小 A 和 Uim 两个人一共拿走多少苹果?
2. 小 B 能拿走多少苹果?
现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。
### 问题 3
现在有 $14$ 个苹果。要均分给 $4$ 名同学,分不掉的苹果放回冰箱。请问:
1. 每位同学能分得几个苹果?
2. 一共分出去多少苹果?
3. 把几个苹果放回冰箱?
现在需要编写一个程序,输出三个数字作为答案,每个数字一行。
### 问题 4
现在有 $500$ 毫升的肥宅快乐水,要均分给 $3$ 名同学,每位同学可以分到多少毫升?请输出一个数字作为输出。保留 $6$ 位有效数字,且不使用科学计数法。
### 问题 5
甲列火车长 $260$ 米,每秒行 $12$ 米;乙列火车长 $220$ 米,每秒行 $20$ 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。
### 问题 6
一个长方形长宽分别是 $6 \text{ cm}$、$9 \text{ cm}$,求它的对角线长度($\text{cm}$)。直接使用 `cout` 输出。
### 问题 7
Uim 银行账户里面有 $100$ 元。经过了下面的操作:
1. 往里面存了 $10$ 元;
2. 购物花掉了 $20$ 元;
3. 把里面的钱全部取出。
请在每次操作后输出账户余额,并使用换行符隔开。
### 问题 8
当半径为 $r=5$,请输出圆的周长、面积和球体积。取 $\pi=3.141593$。请直接使用 `cout` 输出答案,每行一个数字。
### 问题 9
一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?
### 问题 10
洛谷的评测任务是单位时间内均匀增加的。$8$ 台评测机 $30$ 分钟可以刚好把评测队列中的程序评测完毕,$10$ 台评测机 $6$ 分钟可以刚好把评测队列中的程序评测完毕,请问几台评测机可以在 $10$ 分钟时刚好把评测队列中的程序评测完毕?
### 问题 11
小 A 跑步速度 $5 \text{ m/s}$,小 B 跑步速度 $8 \text{ m/s}$,小 B 在小 A 后面 $100 \text{ m}$,他们同时起跑,请问需要多长时间小 B 可以追上小 A?输出一个数字表示答案,使用 `cout` 直接输出。
### 问题 12
大家都知道有 $26$ 个英文字母,其中 A 是第一个字母。现在请编程求出:
1. M 是字母表中的第几个字母?
2. 第 $18$ 个字母是什么?
输出一个数字和一个字母,使用换行隔开。
### 问题 13
小 A 有两块球形橡皮泥,一个半径是 $4$,一个半径是 $10$。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体,请问这个正方体的棱长是多少?如果结果不是整数,则舍去小数点之后的数字。取 $\pi = 3.141593$。
### 问题 14
根据咕咕网校的预测,当课程定价为 $110$ 元时,会有 $10$ 人报名。如果课程价格每降低 $1$ 元,就会多 $1$ 名报名者(反之亦然)。如果希望总共能收到 $3500$ 元学费的话,那么应该定价多少呢?已知本题有两个答案符合要求,则取较小的那一个。如果这个答案不是整数,则需四舍五入精确到整数。
## 输入格式
输入一个正整数,表示第几个问题。
## 输出格式
根据所输入的问题编号,输出对应问题的答案。
## 样例 #1
### 样例输入 #1
```
2
```
### 样例输出 #1
```
6 4
```
## 提示
请解决以下小学数学题。你可以提交答案,也可以写一个程序。
对于本题来说,如果你不知道怎么输入,也可以这么抄:
```
#include<iostream>
// 填上你觉得需要的其他头文件
using namespace std;
int main() {
int T;
cin >> T;
if (T == 1) {
// 粘贴问题 1 的主函数代码,除了 return 0
cout << "I love Luogu!";
} else if (T == 2) {
// 粘贴问题 2 的主函数代码,除了 return 0
cout << 2 + 4 << " " << 10 - 2 - 4;
} else if (T == 3) {
// 请自行完成问题 3 的代码
} else if (T == 4) {
// 请自行完成问题 4 的代码
} else if (T == 5) {
// 请自行完成问题 5 的代码
} else if (T == 6) {
// 请自行完成问题 6 的代码
} else if (T == 7) {
// 请自行完成问题 7 的代码
} else if (T == 8) {
// 请自行完成问题 8 的代码
} else if (T == 9) {
// 请自行完成问题 9 的代码
} else if (T == 10) {
// 请自行完成问题 10 的代码
} else if (T == 11) {
// 请自行完成问题 11 的代码
} else if (T == 12) {
// 请自行完成问题 12 的代码
} else if (T == 13) {
// 请自行完成问题 13 的代码
} else if (T == 14) {
// 请自行完成问题 14 的代码
}
return 0;
}
```
虽然都很简单,但是题太太太多了,编写不易,互关点赞~\(≧▽≦)/~再走o(>﹏<)o吧!!
题解来了
问题 1
按照题意直接输出即可。
cout<<"I love Luogu!"<<endl;
问题 2
简单的加减法即可解决。
cout<<2+4<<" "<<10-2-4<<endl;
问题 3
简单的乘除法即可解决。
因为整数除法向下取整的特性,我们可以直接用 14/4 完成第一个问。
int a=14/4;
cout<<a<<endl;
cout<<a*4<<endl;
cout<<14-a*4<<endl;
问题 4
用浮点除法直接除即可。
cout<<500.0/3<<endl;
问题 5
当成一个相遇问题来做,即两列火车从车头相遇时开始计时,然后让车尾相遇的过程,路程则是两列车的车身长度之和。
cout<<(260+220)/(12+20)<<endl;
问题 6
这题使用勾股定理,即转化为一个直角三角形的两条直角边分别为 6cm、9cm,求它的斜边长度。
所以得到斜边 𝑐=62+92c=62+92。
double a=6,b=9;
double c=sqrt(a*a+b*b);
cout<<c<<endl;
问题 7
按照题意模拟即可。
int a=100;
a+=10; //存了10元
cout<<a<<endl;
a-=20; //花了20元
cout<<a<<endl;
a=0; //全部取出
cout<<a<<endl;
问题 8
设 𝑟r 为半径,那么圆的周长 𝐶=2𝜋𝑟C=2πr,面积 𝑆=𝜋𝑟2S=πr2,球的体积 𝑉=43𝜋𝑟3V=34πr3。
int r=5;
double pi=3.141593;
cout<<2*pi*r<<endl;
cout<<r*r*pi<<endl;
cout<<4.0/3*pi*r*r*r<<endl;
问题 9
用倒推法解决,或者直接列方程,列表也行。
代码用的是倒推法,从剩下一个桃子推出第三天没吃之前有多少个,再推出第二天没吃之前有多少个,以此类推。
cout<<(((1+1)*2+1)*2+1)*2<<endl;
问题 10
是个牛吃草问题,或称牛顿问题,但我太蒻忘了这种题型的小学奥数解法,所以干脆列方程。
设原有 𝑎a 个评测任务,而每分钟增加 𝑥x 个评测任务,那么根据每台评测机每分钟处理的评测任务数量相同,可以得到
𝑎+30𝑥30×8=𝑎+6𝑥6×1030×8a+30x=6×10a+6x
这么一个方程,解之得 𝑥=12𝑎x=21a。
那么每台评测机每分钟可以处理 115𝑎151a 个评测任务,而现在有 𝑎+10𝑥=6𝑎a+10x=6a 个评测任务,相除得到需要 99 台评测机。
cout<<9<<endl;
我看到题解区有巨佬的解法特精彩,果然还是我太蒻。
问题 11
这是个追及问题,直接公式计算就行。注意用浮点除法。
cout<<100.0/(8-5)<<endl;
问题 12
不嫌麻烦的话你可以直接数,我解决这个用的是 ASCII 码。
由于A
是从第一个开始记的,所以要根据情况加 1 或减 1。
cout<<'M'-'A'+1<<endl;
cout<<char('A'-1+18)<<endl;
问题 13
球的体积公式刚才提到了,只要把两个球的体积加起来,再开立方根就行,注意舍去小数部分,即向下取整。
int r1=4,r2=10;
double pi=3.141593;
double v=4.0/3*pi*r1*r1*r1+4.0/3*pi*r2*r2*r2;
v=pow(v,1.0/3); //因为C++没有开立方根的函数,求它的三分之一次方可以达到同样的效果。
printf("%.0lf\n",v); //%.0lf可直接舍去小数部分
问题 14
这涉及到了我的知识盲区……
再一次粗暴地列了方程:
设课程定价需降低 𝑥x 元,可得到
(110−𝑥)(10+𝑥)=3500(110−x)(10+x)=3500
这样一个方程。题目说有两个答案的原因在于这是个一元二次方程。直接暴力破解,得到它的两个根:𝑥=40x=40 和 𝑥=60x=60。
因为题目让我们求课程定价的最小值,而我们设的是降低的钱,那自然降得越多越好,答案应该是 110−60=50110−60=50 元。
cout<<50<<endl;
AC代码
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
cin>>n;
switch(n){
case 1:{
cout<<"I love Luogu!"<<endl;
break;
}
case 2:{
cout<<2+4<<" "<<10-2-4<<endl;
break;
}
case 3:{
int a=14/4;
cout<<a<<endl;
cout<<a*4<<endl;
cout<<14-a*4<<endl;
break;
}
case 4:{
cout<<500.0/3<<endl;
break;
}
case 5:{
cout<<(260+220)/(12+20)<<endl;
break;
}
case 6:{
double a=6,b=9;
double c=sqrt(a*a+b*b);
cout<<c<<endl;
break;
}
case 7:{
int a=100;
a+=10;
cout<<a<<endl;
a-=20;
cout<<a<<endl;
a=0;
cout<<a<<endl;
break;
}
case 8:{
int r=5;
double pi=3.141593;
cout<<2*pi*r<<endl;
cout<<r*r*pi<<endl;
cout<<4.0/3*pi*r*r*r<<endl;
break;
}
case 9:{
cout<<(((1+1)*2+1)*2+1)*2<<endl;
break;
}
case 10:{
cout<<9<<endl;
break;
}
case 11:{
cout<<100.0/(8-5)<<endl;
break;
}
case 12:{
cout<<'M'-'A'+1<<endl;
cout<<char('A'-1+18)<<endl;
break;
}
case 13:{
int r1=4,r2=10;
double pi=3.141593;
double v=4.0/3*pi*r1*r1*r1+4.0/3*pi*r2*r2*r2;
v=pow(v,1.0/3);
printf("%.0lf\n",v);
break;
}
case 14:{
cout<<50<<endl;
break;
}
}
return 0;
}
有人吗?想找个搭子和我一起刷题c++。