14 12
xslwh 发表于 2021-12-7 14:10   只看TA 1楼
  • xslwh
  • 分区版主
  • 离线

[求助] 求助达人一个编程基础问题

期末了,朋友孩子的大学计算机老师出了一道基础题。求助论坛的达人,希望能有完美的解决方案。

题目如下:

输出1000年至9999年所有的对称日,用VBA实现。

(所谓的对称日,就是无论您从左往右念,还是从右往左念,它都是一样的数字!比如:20211202)
0
xslwh 发表于 2021-12-8 18:59   只看TA 2楼
这两天可能论坛比较卡,服务器不太正常。总是维护,也没人解答。
不过照例还是回复感谢一下。
本帖最近评分记录
  • 愚人随风 金币 +1 认真回复,奖励! 2021-12-11 13:23
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
将这天加入一个列表
本帖最近评分记录
  • 愚人随风 金币 +2 认真回复,奖励! 2021-12-11 13:23
0
lichkingrei 发表于 2021-12-10 19:31   只看TA 4楼
有日期函数自然好用
没有日期函数需要自己写的话
第一注意大小月  第二注意闰年的2月
仔细想想总是能写出来的
本帖最近评分记录
  • 愚人随风 金币 +2 认真回复,奖励! 2021-12-11 13:27
0
davidjjjj 发表于 2021-12-11 15:42   只看TA 5楼
这题只要逆向思考就好,因为年没有限制,所以从月日开始解题。表列所有月日,重反排而得其年!所以总共有366个排列(加2月29日),再扣掉年数小于1000的,也就是每月的10,20,30,共扣掉35个(每月3个,二月2个),应剩331个解,不谢。
本帖最近评分记录
  • 愚人随风 金币 +1 认真回复,奖励! 2022-1-13 22:56
0
papapa12306 发表于 2022-1-13 16:14   只看TA 6楼
第一次在LSP聚集地看到有人发编程题~~~没学过VB;解题思路大概就是:

日期拼接->反转字符->利用日期函数校验时间是否合法->如果合法则对称日成立
本帖最近评分记录
  • 愚人随风 金币 +1 认真回复,奖励! 2022-1-13 22:56
0
Fenice123 发表于 2022-5-26 12:57   只看TA 7楼
这题就是类判断回文吗,只不过加上闰年2月特判,还有注意月份,日期的范围,很简单的啊
0
xh20032633 发表于 2022-5-30 22:43   只看TA 8楼
VBA,好古老的东西啊,还记得毕设就是用这玩意写的,但已经完全想不起来了。
上面有解体思路,其实几个For循环也可以,年一直加,月1~12,日1~31再判断月份就好。
0
紫色诱惑 发表于 2022-5-31 20:21   只看TA 9楼
闰年判断出来,就知道月天数,然后判断正序和逆序就可以了,随手写了下用值应该是331个吧
0
hanyuwolf 发表于 2022-6-3 22:34   只看TA 10楼
用上时间函数和翻转,python里就两行代码的事情
0
回复帖子 发新话题
 14 12