给定一个介于0到141 (包括在内)之间的整数,列出其小时、分钟和秒单位加到该整数中的所有24小时时间。
数字是按时间单位加起来的,而不是用个位数加起来的。
例如,17:43:59。
17+43+59=119
记住,这是一个数字被添加的例子。在现实中,你将进入119,17:43:59将是结果之一。输出应为HH:MM:SS或H:MM:SS。
也要记住,最高的数字是141,是23:59:59。这是密码高尔夫,所以最低数量获胜。试验和错误是允许的,但可能有更好的方法来解决这个问题。
编辑:请指定输入值在代码中的位置。
发布于 2016-12-31 07:22:30
发布于 2016-12-31 04:15:29
f x=[tail$(':':).tail.show.(+100)=<<t|t<-mapM(\x->[0..x])[23,59,59],sum t==x]发布于 2016-12-31 03:47:59
p x=['0'|x<10]++show x
i=[0..59]
f x=[p h++':':p m++':':p s|h<-[0..23],m<-i,s<-i,h+m+s==x]返回HH:MM:SS字符串的列表,例如f 140 -> ["22:59:59","23:58:59","23:59:58"]。
它是三个简单的循环,通过时间,分钟和秒。保存和格式化所有值,其中和是输入数字x。
https://codegolf.stackexchange.com/questions/105151
复制相似问题