9.9 KiB
2023.8.20 _码客行_编程公益课 在线评估
- 师大附小六年级学生有
400
名学生参加期末测试,平均92
分,其中男生的平 均分为96
分,女生的平均分为80
分,参加竞赛的男生比女生多多少人?
#include<iostream>
using namespace std;
int main()
{
cout<<"男生比女生多"<< 200 <<"人。"<<endl;
return 0;
}
解:简单方程,略
- 奇奇和马克在学习进位加法,可是他俩还是喜欢不进位的计算。于是他俩想知道
0
~5999
中有多少个数与1234
相加时,不会发生进位。
#include<iostream>
using namespace std;
int main(){
cout<<”有”<< <<”个数。”<<endl;
return 0
}
解: 本题考查乘法原理
千位可取值为(0-8)
百位可取值为(0-7)
十位可取值为(0-6)
个位可取值为(0-5)
所以一共有9*8*7*6=3024
但是,由于0 \sim 5999
,所以千位上要有限制,最大不能到达6
,也就是0 \sim 5
,
6*8*7*6
练习题: 在
1
到9999
有多少个正整数在与4567
相加时,至少在一个数位中发生进位 答案:考虑都不进位的情况 千位可取值为(0-5)
百位为(0-4)
十位为(0-3)
个位为(0-2)
所以一共有6*5*4*3-1=359
个 发生进位的数有9999-359=9640
个
- 奇奇和马克在马路一侧同向而行。马克步行,行走速度为
3.6
千米/时。奇奇 骑着自行车,速度为10.8
千米/时。这时有一辆公共汽车从他们背后开过来, 公共汽车通过马克用了6
秒,通过奇奇用了10
秒。请计算并输出这辆公共汽 车车身的长度。(单位:米)
#include<iostream>
using namespace std;
int main(){
cout<<”这辆公共汽车车身长度为”<< 30 <<”米。”<<endl;
return 0;
}
注:本题考查千米/小时转化为 米/秒后进行计算
- 马克用橡皮泥捏了一些特殊的动物形象。动物
1
有1
头1
脚、动物2
有2
头4
脚、动物3
有1
头3
脚、动物4
有1
头4
脚。所有橡皮泥捏完后,马克数了一下 所有动物共有45
个头、119
只脚,且动物4
的数量恰好是动物2
的2
倍,现在 请你计算并输出动物1
有多少只?
#include<iostream>
using namespace std;
int main(){
cout<<”动物1有”<< 8 <<”只。”<<endl;
return 0;
}
解:
\large \left\{\begin{matrix}
a+2b+c+d=45 & ①\\
a+4b+3c+4d=119 & ②\\
d=2b & ③\\
\end{matrix}\right.
将 ③ 代入 ①,② 得到
\large \left\{\begin{matrix}
a+4b+c=45 & ④ \\
a+12b+3c=119 & ⑤
\end{matrix}\right.
④ \times
3
\large \left\{\begin{matrix}
3a+12b+3c=135 & \\
a+12b+3c=119 &
\end{matrix}\right.
上下相减
得到2a=16
解得a=8
- 爸爸、妈妈、马克三人的苹果数不一样,爸爸的苹果最多,他拿出一些分给
妈妈和马克,使得妈妈和马克的苹果数都比原来增加了
2
倍,现在妈妈的苹 果数又最多,妈妈又拿出一些分给爸爸和马克,使爸爸和马克的苹果数各增 加了2
倍,最后马克的苹果数又最多,最后,马克也拿出一些分给爸爸和妈 妈,使爸爸和妈妈的苹果数各增加2
倍。最终三个人的苹果数一样多,他们 三人一共有162
个苹果 ,求三人原来各有多少个苹果?爸爸( )个,妈妈( )个,马克( )个。
#include<iostream>
using namespace std;
int main()
{
cout<<”最初,爸爸有”<<110 <<”个苹果,妈妈有”<<38 <<”个苹
果,马克有”<<14 <<”个苹果。”;
return 0
}
倒推法,不再赘述
6.由于绘画工的辞职,马克所在的公司剩下一批需要绘画的工作,同时公司每
天还有新的固定数量的绘画工作增加。绘画工作是以页计数的,且每个绘画
工工作速度是相同固定的。秘书告诉马克,如果现在雇佣5
名工人,24
天可
以完成所有工作;如果聘用9
名工人,12
天可以完成所有工作。最终,马克
聘用了一些员工,工作8
天后,由于业务减少,每天新增的工作量降为原来
的一半,最终这些员工用40
天刚好完成了所有的工作。请计算并输出马克实
际聘用的员工数。
#include<iostream>
using namespace std;
int main(){
cout<<”马克实际雇佣了”<< 3 <<”名员工。”<<endl;
return 0;
}
解:
设原有的任务数为S
,每天增加的为V
,最终雇佣了n
个员工,则有方程:
5*24=S+24*V
①
9*12=S+12*V
②
解方程得12V=12
\therefore V=1,S=96
S+8*V+1/2*V*32=40*n
将值代入
96+8+16=40n
n=3
总结:就是一个披着雇佣工人外貌的牛吃草问题
- 马克入住的宾馆
2
楼有20
个房间,此时房间所有灯都是开着的。马克从1
号房 间开始,第一次按下1
号房间的开关,第二次按下2,3
号房间的开关,第三次 按下4,5,6
号房间的开关,……第20
次按下所有房间的开关。请问,最后灯 亮着的房间数。
#include<iostream>
using namespace std;
int main(){
cout<<”最后亮灯的房间有”<< 10 <<”间。”<<endl;
return 0;
}
解: 最开始灯都是开着的,所以,按奇数下是关了,按偶数下是开了
#include <bits/stdc++.h>
using namespace std;
const int N = 21;
int b[N];
int main() {
int start = 1;
for (int i = 1; i <= 20; i++) {
cout << "i=" << i << ",按下的房间号:";
for (int j = start; j < start + i; j++) {
if (j > 20) {
b[j - 20]++;
cout << j - 20 << " ";
} else {
b[j]++;
cout << j << " ";
}
}
cout << endl;
start = start + i;
if (start > 20) start = start - 20;
}
int cnt = 0;
for (int i = 1; i <= 20; i++)
if (b[i] % 2 == 0) cnt++;
cout << "最后亮灯的房间数:" << cnt << endl;
return 0;
}
i=1,按下的房间号:1
i=2,按下的房间号:2 3
i=3,按下的房间号:4 5 6
i=4,按下的房间号:7 8 9 10
i=5,按下的房间号:11 12 13 14 15
i=6,按下的房间号:16 17 18 19 20 1
i=7,按下的房间号:2 3 4 5 6 7 8
i=8,按下的房间号:9 10 11 12 13 14 15 16
i=9,按下的房间号:17 18 19 20 1 2 3 4 5
i=10,按下的房间号:6 7 8 9 10 11 12 13 14 15
i=11,按下的房间号:16 17 18 19 20 1 2 3 4 5 6
i=12,按下的房间号:7 8 9 10 11 12 13 14 15 16 17 18
i=13,按下的房间号:19 20 1 2 3 4 5 6 7 8 9 10 11
i=14,按下的房间号:12 13 14 15 16 17 18 19 20 1 2 3 4 5
i=15,按下的房间号:6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
i=16,按下的房间号:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
i=17,按下的房间号:17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13
i=18,按下的房间号:14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11
i=19,按下的房间号:12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10
i=20,按下的房间号:11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10
最后亮灯的房间数:10
- 一个快钟每时比标准时间快
8
分,一个慢钟每时比标准时间慢7
分。将两个钟 同时调到标准时间,结果在24
时内,快钟显示9
点整时,慢钟恰好显示7
点整。 此时的标准时间是多少?
#include<iostream>
using namespace std;
int main(){
cout<<”此时的标准时间是”<< <<”点”<< <<”分”<<endl;
return 0;
}
解:
每小时快钟比慢钟快8+7=15
分钟,9
点与7
点相差120
分钟,即走了120÷15=8
小时,故快钟比标准时间快了8×8=64
分钟,即此时的标准时间是7
点56
分。
- 一个自然数除
429
、791
、500
所得的余数分别是x+5
、2x
、x
,这个自然数是多少?
#include<iostream>
using namespace std;
int main()
{
cout<<”这个自然数是”<< <<”。”<<endl;
return 0;
}
编码解法
#include <bits/stdc++.h>
using namespace std;
int main() {
for (int i = 1;; i++) {
int a = 429 % i, b = 791 % i, c = 500 % i;
if (a == c + 5 && b == 2 * c) {
cout << i << endl;
cout << "a=" << a << ",b=" << b << ",c=" << c << endl;
break;
}
}
return 0;
}
数学解法
设这个数为K
,得:
429-(x+5)=mK
,
即
429-(x+5)=mK -> 424=mK+x
791-2x=nK \ \ \ \ \ \ \ \ \ -> 791=nK+2x
500-x=pK \ \ \ \ \ \ \ \ \ \ \ -> 500=pK+x
得:76=(p-m)K
57=(2m-n)K
209=(2p-n)K
所以K
是76,57,209
的公约数
76=4*19
57=3*19
209=11*19
所以K
为19
.
- 马克的碗中有纯蔗糖
100
克,奇奇的杯子中有水200
克。首先,马克将部 分纯蔗糖倒入奇奇的杯子里。接着,奇奇又将自己杯子中的糖水倒入马克的碗中。 此时,马克碗中蔗糖含量为50\%
,奇奇杯子中蔗糖含量为25\%
。 现在请你计算并输出马克碗里此时有糖水多少克?
#include<iostream>
using namespace std;
int main(){
cout<<”奇奇杯子中此时有糖水”<< 100 <<”克。”<<endl;
return 0;
}
解: 不管你中间怎么折腾,最终的糖和水的重量不会改变。
设最后马克碗中糖水重为x
克,则奇奇杯中糖水重为100+200-x
克。
50\% \times x + (300-x) \times 25 \%=100
0.5x+75-0.25x=100
x=100