xslwh 发表于 2021-12-7 14:10 只看TA 1楼 |
---|
|
[求助] 求助达人一个编程基础问题 期末了,朋友孩子的大学计算机老师出了一道基础题。求助论坛的达人,希望能有完美的解决方案。题目如下: 输出1000年至9999年所有的对称日,用VBA实现。 (所谓的对称日,就是无论您从左往右念,还是从右往左念,它都是一样的数字!比如:20211202) |
0 |
lichkingrei 发表于 2021-12-10 19:26 只看TA 3楼 |
---|
语法不知道 不过逻辑大概是这样子: 首先循环遍历1000.1.1-9999.12.31内所有的日期 然后将date转换成字符串 字符串的顺叙格式肯定是 y1 y2 y3 y4 m1 m2 d1 d2 拆分 if y1=d2 & y2=d1 & y3=m2 & y4=m1 将这天加入一个列表 |
0 |
|
---|
lichkingrei 发表于 2021-12-10 19:31 只看TA 4楼 |
---|
有日期函数自然好用 没有日期函数需要自己写的话 第一注意大小月 第二注意闰年的2月 仔细想想总是能写出来的 |
0 |
|
---|
davidjjjj 发表于 2021-12-11 15:42 只看TA 5楼 |
---|
这题只要逆向思考就好,因为年没有限制,所以从月日开始解题。表列所有月日,重反排而得其年!所以总共有366个排列(加2月29日),再扣掉年数小于1000的,也就是每月的10,20,30,共扣掉35个(每月3个,二月2个),应剩331个解,不谢。 |
0 |
papapa12306 发表于 2022-1-13 16:14 只看TA 6楼 |
---|
第一次在LSP聚集地看到有人发编程题~~~没学过VB;解题思路大概就是: 日期拼接->反转字符->利用日期函数校验时间是否合法->如果合法则对称日成立 |
0 |
|
---|
xh20032633 发表于 2022-5-30 22:43 只看TA 8楼 |
---|
VBA,好古老的东西啊,还记得毕设就是用这玩意写的,但已经完全想不起来了。 上面有解体思路,其实几个For循环也可以,年一直加,月1~12,日1~31再判断月份就好。 |
0 |
|
---|