ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 不规则结构

又一道蓝桥小题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-1 19:05 | 显示全部楼层

这是蓝桥题改编的!运行内存时间可能就是不能使用大量的循环吧!毕竟N的最大值是10的18次方!运行速度限制在2秒。我写的用了工作表函数。
Function test(a As Long, b As Long, n As Long)
    '第一参数对应周一到周五产量,第二参数对应周末产量。第三参数对应零件总数
    k1 = Int(n / (5 * a + 2 * b)) * 7 '整周数天数
    yu = n Mod (5 * a + 2 * b) '取余
    If yu > 5 * a Then
        k2 = 5 + Application.Ceiling((yu - 5 * a) / b, 1)
    Else
        k2 = Application.Ceiling(yu / a, 1)
    End If
    test = k1 + k2
End Function

TA的精华主题

TA的得分主题

发表于 2024-10-1 19:14 | 显示全部楼层
好好的算法题目,干成了循环,调用,穷举

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-1 19:46 | 显示全部楼层
micch 发表于 2024-10-1 19:14
好好的算法题目,干成了循环,调用,穷举

不就是一个小学数学题,哪有什么算法?调用工作表函数是写起来方便

TA的精华主题

TA的得分主题

发表于 2024-10-1 21:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
内置函数无法计算超大数。就算能计算,其实从学习和练习的角度,也应该是尝试如何设计一个方法实现超大数的计算。如果调用函数计算,没说不可以,适合初学代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-1 21:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
micch 发表于 2024-10-1 21:15
内置函数无法计算超大数。就算能计算,其实从学习和练习的角度,也应该是尝试如何设计一个方法实现超大数的 ...

这样?
Function test(a As Longlong, b As Longlong, n As Longlong)
    '第一参数对应周一到周五产量,第二参数对应周末产量。第三参数对应零件总数
    k1 = Int(n / (5 * a + 2 * b)) * 7 '整周数天数
    yu = n Mod (5 * a + 2 * b) '取余
    If yu > 5 * a Then
        k2 = 5 +(yu - 5 * a) / b
    Else
        k2 = yu / a
    End If
    if instr(k2,".")  then  k2=k2+1
    test =cstr(k1 + k2)
End Function

TA的精华主题

TA的得分主题

发表于 2024-10-1 22:55 | 显示全部楼层
longlong应该够这个题目要求了,如果数字范围再放大到 int和mod不支持的情况,就需要自行设计代码了。

比如n是 9999945434138541347861316464313134534354135435413131313199999999999,一周总和是77774844313431313843131434131427414

TA的精华主题

TA的得分主题

发表于 2024-10-2 09:42 | 显示全部楼层
micch 发表于 2024-10-1 22:55
longlong应该够这个题目要求了,如果数字范围再放大到 int和mod不支持的情况,就需要自行设计代码了。

...

都说Python 是全世界最流行的开发语言,有最丰富的第3方库,我就拿来试了一下,果然4行代码就完美解决,简单是太棒了,爽得不要不要的。顺便试了一下超大数字的运算,根本不是任何问题,简单到如同喝水,拿来就用,意外不意外,惊喜不惊喜
TIOBE.png
Python天数.png

TA的精华主题

TA的得分主题

发表于 2024-10-2 10:47 | 显示全部楼层
micch 发表于 2024-10-1 19:14
好好的算法题目,干成了循环,调用,穷举

没有循环,1个简单的Select 搞定
SQL天数.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-2 11:17 来自手机 | 显示全部楼层
一招秒杀 发表于 2024-10-2 09:42
都说Python 是全世界最流行的开发语言,有最丰富的第3方库,我就拿来试了一下,果然4行代码就完美解决, ...

大数计算的竞赛,考的就是造第三方库的轮子而不是使用轮子

TA的精华主题

TA的得分主题

发表于 2024-10-2 11:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
应该是我自己走错路了,也是因为我没有专业的知识,不知道有什么库能用,也不知道怎么调用库,干啥都是自己写代码实现一些市面上本就有的成熟的功能。

不过,学习过程嘛,多写写,多研究,反正是练习。可能我自己写出来的代码,和市面上已有的代码比,就是渣渣,也许设计的代码逻辑,代码方案非常的不合理或者臃肿,甚至还有Bug,但错的多了不就学会了嘛。

关键不在于代码怎么写是好的,而是思考的过程,写代码和做任何事都是一样的嘛,从不会,到做不好,到做好,有个渐进过程。也许别人的逻辑写的很好,是最优答案,但是自己写个不同的逻辑就当是锻炼了。
因为如果要结果:最快的方式不是自己写,而是发出问题,别人给答案。毕竟想要什么代码,网上都有,即便自己搜不到,问了以后别人也能给出答案。


最近看了好多游戏设计的代码,同一个游戏,有很多人都拿来练手,如果自己想做一个能直接抄一个完整的,或者可以把几个不同的方案摘抄拼凑在一起也是一个新的方案。
正常的思路,肯定是别人都写好方法了,复制过来引用就行了嘛。但是引用别人的方法,那搭游戏的框架和逻辑设计的时候就要去迎合别人的库。

举例子:一个项目中间会用到很多常量,如果别人的库是根据二进制计算,那你提供的常量就需要写成二进制,如果库引用的是16进制的,那常量就要写成16进制。如果调用了几个不同的库,可能自己的常量就要设计的乱七八糟,或者就要自己设计一套常量,然后再写转化的方法把常量转化后传递给各个不同的库。
如果,不用库,看上去很傻,但是自己设计自己写,那这个过程能收获更多,主要是锻炼思维。也许等哪一天自己足够厉害了,就不用再去写了,用什么都有自己的库了,即便没有也知道去哪找到刚好适合i自己的库了,再即便没有刚好的库,找个能用的库,自己写个接口对接起来就行了。
现在快餐时代了,谁还学基础代码啊,都是搭积木,学会怎么调用就行了。甚至不懂代码都可以用低代码平台人工搭建项目了。所以我肯定是走错路了,应该是学会使用工具,而不是学习造工具。

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 13:31 , Processed in 0.035823 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表