从前有一位聪明的仆人,他救下了一位王子的性命。 国王答应,仆人想要什么,就赏他什么。 仆人知道国王喜欢下国际象棋,便告诉国王,他想要麦粒。 棋盘的第一格放一粒麦粒,之后每一格的数量都翻一倍。
计算棋盘上的小麦粒数。
棋盘有 64 个格子。 第 1 格有 1 粒小麦,第 2 格有 2 粒,第 3 格有 4 粒,以此类推,每格数量翻倍。
编写代码来计算:
根据 Vim 文档:
假设使用 64 位数字(参见 v:numbersize),无符号数会被截断为 0x7fffffffffffffff 或 9223372036854775807。
换句话说,Vim script 无法把 2^63 或更大的数字表示为整数。
本练习的一些测试需要 64 位整数,这超出了 Vim script 的整数大小限制。 由于这一限制,计算结果是针对一个表示该整数值的字符串进行测试的,而不是把答案表示为 Integer。 你能通过避免使用超出该语言直接允许范围的数字来解决这个问题吗?