刷题心得2-洛谷-小学数学N合一

# 【深基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;
}
```

错误代码:

#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int main(){
	int choice;
	cin>>choice;
	switch(choice){
		case 1:
			{
				cout<<"I love Luogu!"<<endl; 
				break;
			}
		case 2:
			{
				cout<<6<<" "<<4<<endl;
				break;
			}
		case 3:
			{
				cout<<3<<endl<<12<<endl<<2<<endl;
				break; 
			}
		case 4:
			{
			 	cout << fixed << setprecision(3)<<500/3.0<<endl;
			 	break;
			}
		case 5:
			{
				cout<<480/32<<endl;
				break;
			}
		case 6:
			{
				cout<<sqrt(36+81)<<endl;
				break;
			}
		case 7:
		    {
		    	int money=100;
				money+=10; 
		    	cout<<money<<endl;
		    	money-=20;
		    	cout<<money<<endl;
		    	money=0;
		    	cout<<money<<endl;
		    	break;
			}
		case 8:
			{
				double PI=3.141593;
				cout<<10*PI<<endl<<25*PI<<endl<<4/3.0*125*PI<<endl;
				break;
			}
		case 9:
		    {
		    	cout<<22<<endl;
		    	break;
			}
		case 10:
			{
				cout<<9<<endl;
				break;
			}
		case 11:
			{
				cout<<abs(100/3)+1<<endl;
				break;
			}
		case 12:
			{
				cout<<('M'-'A')<<endl<<'A'+18<<endl;
				break; 
			}
		case 13:
			{
				cout<<abs(sqrt(116*3.141593))<<endl;
				break;
			}
		case 14:
			{
				cout<<50<<endl;
				break;
			}
	}
	return 0;
} 

AC代码

#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int main(){
	int choice;
	cin>>choice;
	switch(choice){
		case 1:
			{
				cout<<"I love Luogu!"<<endl; 
				break;
			}
		case 2:
			{
				cout<<6<<" "<<4<<endl;
				break;
			}
		case 3:
			{
				cout<<3<<endl<<12<<endl<<2<<endl;
				break; 
			}
		case 4:
			{
			 	cout << fixed << setprecision(3)<<500/3.0<<endl;
			 	break;
			}
		case 5:
			{
				cout<<480/32<<endl;
				break;
			}
		case 6:
			{
				cout<<sqrt(36+81)<<endl;
				break;
			}
		case 7:
		    {
		    	int money=100;
				money+=10; 
		    	cout<<money<<endl;
		    	money-=20;
		    	cout<<money<<endl;
		    	money=0;
		    	cout<<money<<endl;
		    	break;
			}
		case 8:
			{
				double PI=3.141593;
				cout<<10*PI<<endl<<25*PI<<endl<<4/3.0*125*PI<<endl;
				break;
			}
		case 9:
		    {
		    	cout<<22<<endl;
		    	break;
			}
		case 10:
			{
				cout<<9<<endl;
				break;
			}
		case 11:
			{
				cout <<1.0*100/3<< endl; 
				break;
			}
		case 12:
			{
				char b='A'+17;
				cout<<('M'-'A')+1<<endl<<b<<endl;
				break; 
			}
		case 13:
			{
				cout<<(int)(cbrt(4.0/3*1064*3.141593))<<endl;
				break;
			}
		case 14:
			{
				cout<<50<<endl;
				break;
			}
	}
	return 0;
} 

错误总结:

11题看到报错是因为答案太短了,一开始的代码最后整除答案是整数,不符合要求,要先给100*0.1转化成浮点数的计算确保精度。

12题报错是因为在一开始写的时候没有进行类型转化,'A'+18输出的结果是数字,此时字符型已被转化为整数型。我在计算时加的是18,没有考虑到第18个字母和A之间应该是相差17

13题报错我联想到了取整,但是函数使用错误,使用的abs取绝对值函数,最后使用强制类型转化解决。

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值