## 2023.8.20 _码客行_编程公益课 在线评估 1. 师大附小六年级学生有$400$名学生参加期末测试,平均$92$分,其中男生的平 均分为$96$分,女生的平均分为$80$分,参加竞赛的男生比女生多多少人? ```cpp {.line-numbers} #include using namespace std; int main() { cout<<"男生比女生多"<< 200 <<"人。"< using namespace std; int main(){ cout<<”有”<< <<”个数。”< **练习题**: > 在$1$到$9999$有多少个正整数在与$4567$相加时,至少在一个数位中发生进位 > **答案**:考虑都不进位的情况 千位可取值为$(0-5)$ 百位为$(0-4)$ 十位为$(0-3)$ 个位为$(0-2)$ 所以一共有$6*5*4*3-1=359$个 发生进位的数有$9999-359=9640$个 1. 奇奇和马克在马路一侧同向而行。马克步行,行走速度为$3.6$千米/时。奇奇 骑着自行车,速度为$10.8$千米/时。这时有一辆公共汽车从他们背后开过来, 公共汽车通过马克用了$6$秒,通过奇奇用了$10$秒。请计算并输出这辆公共汽 车车身的长度。(单位:米) ```cpp {.line-numbers} #include using namespace std; int main(){ cout<<”这辆公共汽车车身长度为”<< 30 <<”米。”< using namespace std; int main(){ cout<<”动物1有”<< 8 <<”只。”< using namespace std; int main() { cout<<”最初,爸爸有”<<110 <<”个苹果,妈妈有”<<38 <<”个苹 果,马克有”<<14 <<”个苹果。”; return 0 } ``` 倒推法,不再赘述 6.由于绘画工的辞职,马克所在的公司剩下一批需要绘画的工作,同时公司每 天还有新的固定数量的绘画工作增加。绘画工作是以页计数的,且每个绘画 工工作速度是相同固定的。秘书告诉马克,如果现在雇佣$5$名工人,$24$天可 以完成所有工作;如果聘用$9$名工人,$12$天可以完成所有工作。最终,马克 聘用了一些员工,工作$8$天后,由于业务减少,每天新增的工作量降为原来 的一半,最终这些员工用$40$天刚好完成了所有的工作。请计算并输出马克实 际聘用的员工数。 ```cpp {.line-numbers} #include using namespace std; int main(){ cout<<”马克实际雇佣了”<< 3 <<”名员工。”<总结:就是一个披着雇佣工人外貌的牛吃草问题 7. 马克入住的宾馆$2$楼有$20$个房间,此时房间所有灯都是开着的。马克从$1$号房 间开始,第一次按下$1$号房间的开关,第二次按下$2,3$号房间的开关,第三次 按下$4,5,6$号房间的开关,……第$20$次按下所有房间的开关。请问,最后灯 亮着的房间数。 ```cpp {.line-numbers} #include using namespace std; int main(){ cout<<”最后亮灯的房间有”<< 10 <<”间。”< 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; } ``` ```cpp {.line-numbers} 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. 一个快钟每时比标准时间快$8$分,一个慢钟每时比标准时间慢$7$分。将两个钟 同时调到标准时间,结果在$24$时内,快钟显示$9$点整时,慢钟恰好显示$7$点整。 此时的标准时间是多少? ```cpp {.line-numbers} #include using namespace std; int main(){ cout<<”此时的标准时间是”<< <<”点”<< <<”分”< using namespace std; int main() { cout<<”这个自然数是”<< <<”。”< 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$. 10. 马克的碗中有纯蔗糖 $100$ 克,奇奇的杯子中有水 $200$ 克。首先,马克将部 分纯蔗糖倒入奇奇的杯子里。接着,奇奇又将自己杯子中的糖水倒入马克的碗中。 此时,马克碗中蔗糖含量为 $50\%$ ,奇奇杯子中蔗糖含量为$25\%$。 现在请你计算并输出马克碗里此时有糖水多少克? ```cpp {.line-numbers} #include using namespace std; int main(){ cout<<”奇奇杯子中此时有糖水”<< 100 <<”克。”<