题解 | #魔法序列#我和Mathematica,ChatGPT合力砍下牛客挑战赛75的A题

魔法序列

https://ac.nowcoder.com/acm/contest/84888/A

题目

“如果世上只剩下一个女孩子,应该给她取名叫伊娜。”

伊娜从画板一侧探出半张小脸,用她湛蓝的眼眸盯了我好一会儿,才又缩了回去,几不可闻地轻叹了一声。

“你又在说怪话了。”伊娜小姐如是说。

“我是真心这么觉得的。”我告诉她。“因为伊娜的可爱已经达到前无古人后无来者的地步了。”

定义一个魔法序列  为:

具体来说, 序列的第一项是 ,接下来每一项是上一项在该位置之前出现的次数。

给定一个正整数 ,你需要求出  

代码

# generateSequence[n_] := 
#  Module[{seq = {1}, i, count}, 
#   For[i = 2, i <= n, i++, count = Count[seq, seq[[-1]]];
#    AppendTo[seq, count]];
#   seq]

# (*Generate the first 20 elements of the sequence*)
# generateSequence[20]
# FindSequenceFunction[%6, n]
# Sum[%7, {n, 1, m}]


# a_n= \frac{1}{4} (-1)^n \left((-1)^n n-n+3 (-1)^n+1\right)

# prefix_sum= \frac{1}{16} \left(2 (-1)^{2 m} m^2-2 (-1)^m m+2 (-1)^{2 m} m+12 m+(-1)^m-1\right)

# complete my python code

import math

def prefix_sum(m):
    # Calculate each component of the formula
    term1 = 2 * (-1)**(2 * m) * m**2
    term2 = -2 * (-1)**m * m
    term3 = 2 * (-1)**(2 * m) * m
    term4 = 12 * m
    term5 = (-1)**m
    term6 = -1

    # Sum all the terms
    result = term1 + term2 + term3 + term4 + term5 + term6

    # Divide by 16
    result=result//16

    return result

n = int(input())
ans = prefix_sum(n)
print(ans)

全部评论

相关推荐

2024-11-18 10:36
内蒙古民族大学 Java
白菜小丑呜呜:Radis写错了兄弟
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务