(PAT乙级)1070 结绳(C语言实现)

(PAT乙级)1070 结绳(C语言实现)_第1张图片

总结:

1、这题只要想清楚其中的取巧点就很容易做了。因为所有长度都要串在一起,每次都等于(旧的绳子长度+新的绳子长度)/2,所以越是早加入绳子长度中的段,越要对折的次数多,所以既然希望绳子长度是最长的,就必须让长的段对折次数尽可能的短。所以将所有段从小到大排序,然后从头到尾从小到大分别将每一段依次加入结绳的绳子中,最后得到的结果才会是最长的结果~(嘻嘻,这段话复制源于柳婼小姐姐,因为思路完全一样,懒癌晚期的我就不码字了)

2、唯一不太同的是,我求和用了double类型,之后再进行强制转换。柳婼小姐姐是直接定义为整型。两者都对,看你喜欢怎么处理吧。

你可能感兴趣的:((PAT乙级)1070 结绳(C语言实现))