惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 最新话题
NISL@THU
NISL@THU
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
宝玉的分享
宝玉的分享
Cisco Talos Blog
Cisco Talos Blog
Help Net Security
Help Net Security
月光博客
月光博客
V
V2EX
量子位
T
Threat Research - Cisco Blogs
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
Google DeepMind News
Google DeepMind News
P
Privacy International News Feed
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
Arctic Wolf
S
Schneier on Security
H
Hacker News: Front Page
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cisco Blogs
G
GRAHAM CLULEY
The Cloudflare Blog
博客园 - Franky
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
云风的 BLOG
云风的 BLOG
H
Heimdal Security Blog
The GitHub Blog
The GitHub Blog
C
Check Point Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
The Blog of Author Tim Ferriss
小众软件
小众软件
Hacker News: Ask HN
Hacker News: Ask HN
T
Tenable Blog
The Last Watchdog
The Last Watchdog
J
Java Code Geeks
T
Troy Hunt's Blog
B
Blog
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC

愆伏

vue feedback 指令开发 通过webpack对css压缩后所引起的重名问题 NPM 撤回已发布的版本 昆虫有趋光性吗 数组转成字符串(css 属性) 关于grid布局的一些思考 阿里云和腾讯云网站字体族对比 Vue组件抛事件和Function prop的差别 Vue 事件参数传递 Vue Data里面下划线命名无效并报错 使用sublime中的正则处理数据格式 通过nodejs创建目录与文件 macOS 下npm run dev 无法局域网访问 mac 下使用ssh访问非22端口的gitlab 世界是平的,在科学上网之后 使用sublime text3和Markdown来写博客 如果非要给一个标题,那就是2014年非工作总结 不专业呢,就别捣乱 对知乎大号怒撤事件的一点看法 拒绝SB思维 嘀嘀与快的的商业博弈 关于收藏夹功能的思考 你居然都不用微信 一个英语培训机构的外呼电话 智商是硬伤就无解了 扁鹊三兄弟 竖子不足与谋 美丽说、蘑菇街今天一定开了好几个小时的会 个人独立博客会死掉吗? iPad作画 google reader即将关闭,谁来候补? 去年 美国人又火星了 一个简单的flash射击游戏 Draw an angry bird with pure CSS 用css3画一坨屎 一只音箱——漫步者M0pro 瓢虫图标 如果能够收集到世界上所有人的梦 作为一名产品经理 wordpress换域名 程序员和站长之间资源的交换 独角仙饲育日记1 男人是得有点装备的 镇江火车站、新汽车站到香逸渔港大酒店路线 jquery的slideUp、slideDown在IE中的闪动bug 《玩赚你的网站》是本难得的好书 腾讯微博邀请,欢迎自取 福特2010最新款家用普及型车 关于小霸王是否可以玩魔兽世界的问题 君要臣死,臣不得不死 wordpress主题发布:iCake 1.0 脆弱的域名服务 舍身成仁,舍己为人 欲练神功,挥刀自宫——在没有google之后 杯具掉的手作软陶皮卡丘 凶猛的阿凡达 js+css控制字体变换 2009年下半年南艺自考设计素描(本科) 愤怒摔食图——去TMD的xxx 改裤衩 紫金山捉虫记 态度问题还是能力问题 慷慨的饭店老板 南艺自考顺利达标 2009上半年南艺艺术设计自考毕业设计 说说产品经理-前言 在线生成卡通头像 CG weaver 1~3期打包下载 育儿网招聘网页设计师 google calendar的另类用法 互联网产品、运营二三事 小情调 干切牛肉雪菜面加煎蛋x2 永远的龙珠 M8:我不是山寨 终于回来了 还不都为了大客户 古典音乐——冷笑话 豆瓣盈利能力堪忧? 骑马与砍杀(mount&blade)——另类的爽快 溺爱的代价 开心不开心? 超赞的视频广告——wario land shake 神奇的《孢子spore》 该相信用户的话吗? chrome——google浏览器真的来了! 浏览器:web世界之门 赤壁——三国梦 项目管理就是博弈 Pia ji 一声的快感 Memories 拿来主义 一声叹息 禅心 LBS^2转到wordpress2.5 尽我们所能帮助灾区,希望灾民平安度过难关 游高崇寺 Avant Browser的复兴 “知”的提升
华数杯中真题中的程序题
tortorse · 2023-03-19 · via 愆伏

"双减"的口号喊了一遍遍,可是学生们的竞争压力一点没减少,而且越来越卷。最近孩子妈给孩子找了些数学思维的题目,据说是华数杯的真题,想帮助孩子提高提高数学。她看了一下题目说看不懂,问我会不会。我一瞧,这数学题目里怎么是个编程题?感觉就编程来说不是太难,但是要用数学方法解,我还真是直挠头。于是我觉得还是先把程序写出来,如果你有这方面的经验,还烦请指教

第一题

将任意两个正整数 a 和 b 依次输入到程序中,程序将按照以下步骤执行:

步骤 1:

令 q 的值为 0;

步骤 2:

当 a<b 时,依次输出 q 和 a 的值,结束整个程序;

否则将原来的 a 替换为 a–b 作为 a,并且将 q 的值增加 1 作为 q;

当 a–b<b 时,依次输出 q 和 a,否则重复执行步骤 2. 现在向程序依次输入正整数 122 和 7,

请问:程序输出的 q 的值是__________,a 的值是__________.

看了题干,感觉直接按文字写成代码就行了,我也只会写个 js,具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let q = 0;
function calc(a, b) {
if (a < b) {
console.log(q, a);
return;
} else {
a = a - b;
q = q + 1;

if (a < b) {
console.log(q, a);
return;
} else {
calc(a, b);
}
}
}

calc(122, 7);

最后输出的结果是 q = 16a = 10,也不清楚对不对。

输入结果是 q = 17a=3

到网上搜了一下,在 2021 的华数杯中有 类似的一题

将任意两个正整数a和b依次输入到程序中,程序将按照以下步骤执行: 步骤 1:令q的值等于 0; 步骤 2:当a小于b时,依次输出q和a的值,结束整个程序;否则将a的值减去b, 并且将q的值增加 1,重复执行步骤 2. 现在向程序依次输入正整数 122 和 7,请问程序输出q的值是______,a的值是_____

这题比上面的题目少一个条件,答案解析是这么写的:

这个程序是用减法来实现带余数除法. 输入的 a 和 b 依次为被除数和除数, 每次将被除数减去除数,如果够减,q 的值加 1,直到不够减为止. 此时输出的 q 为带余数除法的商, 而 a 为余数.若输入 a = 122 和 b = 7,由带余除法 122 ÷ 7 = 17 … 3 可知输出的 q = 17, a = 3

于是简化一下之前的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
let q = 0;
function calcb(a, b) {
if (a < b) {
console.log(q, a);
return;
} else {
a = a - b;
q = q + 1;
calcb(a, b);
}
}

calcb(122, 7);

最终输出的结果是 17 和 3,与答案一致。

正如答案解析所述,这题实际上考察的是对除法的认知

题目二

将任意一个大于 0 小于 100 的一位小数(即小数点后有一位的数)x 输入到程序中, 程序都将按照以下步骤执行:

步骤 1:

令 y 的值等于 x 乘以 10 的积;

令 p 的值等于 y 除以 10 的商;

令 q 的值等于 y 除以 10 的余数;

步骤 2:

如果 q 大于 4,则将 p 的值加 1;

步骤 3:

输出 p,结束整个程序.

现在将一位小数 21.6 输入到程序中,则程序输出的 p 的值是__________.

这一题也是直接按照题干写代码:

1
2
3
4
5
6
7
8
9
10
11
12
function calc(x) {
let y = x * 10;
let p = y / 10;
let q = y % 10;
if (q > 4) {
p = p + 1;
}
console.log(p);
return;
}

calc(21.6);

最终输出 p = 22.6,找了一下 答案解析 答案是 2222.6

输入21.6,y=216,216÷10=21...6,商=21,余数=6,余数大于4,则商+1,商=22

我感觉这里的差异在于对 的解释是否包含小数位,如果不包含的话,程序就改成:

1
2
3
4
5
6
7
8
9
10
11
12
function calc(x) {
let y = x * 10;
let p = Math.floor(y / 10);
let q = y % 10;
if (q > 4) {
p = p + 1;
}
console.log(p);
return;
}

calc(21.6);

这样结果就是 22

由上面可以看出,这题考察的实际上是对四舍五入的实现认知

对于这样的数学题,我感觉真的有点牵强附会,似乎是想把孩子们训练成 《沙丘》 里的 “门泰特”。这样的题目以及对应的教学没有教会孩子编程思维,而是把孩子们当作计算机本身去模拟计算机的行为,这是不是有点本末倒置?