21计科程一帆


私信TA

用户名:uq_88617846948

访问量:5222

签 名:

搞哥毛哥在上,俺寻思俺是一个最大最强的技术小子

等  级
排  名 959
经  验 3415
参赛次数 2
文章发表 52
年  龄 19
在职情况 学生
学  校 石河子大学
专  业 计算机科学与技术

  自我简介:

憨憨一个,欢迎大佬指正

解题思路: 本题中可以使用递归或者循环的方法进行字符串连接输出对应结果,主要的解题步骤还是要找规律,字符拼接的时候只要别粗心少个符号啥的就行,这一题中首先看An,它本质上就是“sin(i”加上对应加减号的简单拼接,最后根据n的大小再给字符拼上对应数目的后括号就行了;这里先把An的拼接步骤写到一个函数里面,最好也命名为An,方便后面辨别和使用,然后再来看Sn,它的规律不难看出就是把每一次的Ai+1和上一层的(Ai+(n-i+1))进行拼接,然后再加上n-i,两头加括号后继续依次规律拼接,不过需要注意的是只有最后一层不需要加括号,可以加一个if语句进行判断。

注意事项: 注意不要漏了某个加减号之类的

参考代码:

a=int(input())
def An(a):
   result = ""
   for i in range(1, a + 1):
       result += "sin(" + str(i)
       if i % 2 == 0 and i != a:
           result += "+"
       elif i % 2 != 0 and i != a:
           result += '-'
   for i in range(a):
       result += ")"
   return result
count=''
for i in range(1,a+1):
   count+=An(i)+'+'+str((a-i+1))
   if i!=a:
       count='('+count+')'
print(count)

 

0.0分

1 人评分

  评论区

  • «
  • »