当前位置:   article > 正文

蓝桥杯-第七届蓝桥杯C语言A组/B组/C组-Python题解_蓝桥杯c组python

蓝桥杯c组python

目录

网友年龄

生日蜡烛

密码脱落

最大比例

煤球数目

平方怪圈

冰雹数


网友年龄

某君新认识一网友。

当问及年龄时,他的网友说:

“我的年龄是个2位数,我比儿子大27岁,

如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”

请你计算:网友的年龄一共有多少种可能情况?

提示:30岁就是其中一种可能哦.

请填写表示可能情况的种数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

  1. def juage(x):
  2. x=str(x)
  3. y=x[::-1]
  4. x=int(x)
  5. y=int(y)
  6. if x-y==27:
  7. return True
  8. else:
  9. return False
  10. ans=0
  11. for i in range(10,100):
  12. if juage(i):
  13. ans+=1
  14. print(ans)

生日蜡烛

某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。

现在算起来,他一共吹熄了236根蜡烛。

请问,他从多少岁开始过生日party的?

请填写他开始过生日party的年龄数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

  1. flag=False
  2. for i in range(1,121):
  3. sum=0
  4. for j in range(i,121):
  5. sum+=j
  6. if sum==236:
  7. print(i)
  8. flag=True
  9. break
  10. if flag:
  11. break

密码脱落

X星球的考古学家发现了一批古代留下来的密码。

这些密码是由A、B、C、D 四种植物的种子串成的序列。

仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。

由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。

你的任务是:

给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。

输入一行,表示现在看到的密码串(长度不大于1000)

要求输出一个正整数,表示至少脱落了多少个种子。

例如,输入:

ABCBA

则程序应该输出:

0

再例如,输入:

ABDCDCBABC

则程序应该输出:

3

  1. string=input()
  2. i=0
  3. j=len(string)-1
  4. ans=0
  5. while i!=j:
  6. if string[i]!=string[j]:
  7. ans+=1
  8. i+=1
  9. if i==j:
  10. break
  11. else:
  12. j-=1
  13. if len(string)%2==0:
  14. ans-=1
  15. print(ans)

最大比例

X星球的某个大奖赛设了M级奖励。每个级别的奖金是一个正整数。

并且,相邻的两个级别间的比例是个固定值。

也就是说:所有级别的奖金数构成了一个等比数列。比如:

16,24,36,54

其等比值为:3/2

现在,我们随机调查了一些获奖者的奖金数。

请你据此推算可能的最大的等比值。

输入格式:

第一行为数字 N (0<N<100),表示接下的一行包含N个正整数

第二行N个正整数Xi(Xi<1 000 000 000 000),用空格分开。每个整数表示调查到的某人的奖金数额

要求输出:

一个形如A/B的分数,要求A、B互质。表示可能的最大比例系数

测试数据保证了输入格式正确,并且最大比例是存在的。

例如,输入:

3

1250 200 32

程序应该输出:

25/4

再例如,输入:

4

3125 32 32 200

程序应该输出:

5/2

再例如,输入:

3

549755813888 524288 2

程序应该输出:

4/1

  1. n=int(input())
  2. number_list=list(map(int,input().split()))
  3. number_list.sort()
  4. def gcd(a,b):
  5. return a if b==0 else gcd(b,a%b)
  6. a,b=0,0
  7. max_value=0
  8. for i in range(len(number_list)-1):
  9. if number_list[i+1]/number_list[i]>max_value:
  10. max_value=number_list[i+1]/number_list[i]
  11. a=number_list[i+1]
  12. b=number_list[i]
  13. temp=gcd(a,b)
  14. a/=temp
  15. b/=temp
  16. print('{}/{}'.format(int(a),int(b)))

煤球数目

有一堆煤球,堆成三角棱锥形。具体:

第一层放1个,

第二层3个(排列成三角形),

第三层6个(排列成三角形),

第四层10个(排列成三角形),

....

如果一共有100层,共有多少个煤球?

请填表示煤球总数目的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

  1. diff_number=2
  2. ans=1
  3. start=1
  4. for i in range(2,101):
  5. start+=diff_number
  6. diff_number+=1
  7. ans+=start
  8. print(ans)

平方怪圈

如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。

对新产生的正整数再做同样的处理。

如此一来,你会发现,不管开始取的是什么数字,

最终如果不是落入1,就是落入同一个循环圈。

请写出这个循环圈中最大的那个数字。

请填写该最大数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

  1. n=16
  2. max_value=-10**10
  3. while True:
  4. n=str(n)
  5. sum=0
  6. for i in range(len(n)):
  7. sum+=int(n[i])**2
  8. if sum==max_value:
  9. break
  10. if sum>max_value:
  11. max_value=sum
  12. n=sum
  13. print(max_value)

冰雹数

任意给定一个正整数N,

如果是偶数,执行: N / 2

如果是奇数,执行: N * 3 + 1

生成的新的数字再执行同样的动作,循环往复。

通过观察发现,这个数字会一会儿上升到很高,

一会儿又降落下来。

就这样起起落落的,但最终必会落到“1”

这有点像小冰雹粒子在冰雹云中翻滚增长的样子。

比如N=9

9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1

可以看到,N=9的时候,这个“小冰雹”最高冲到了52这个高度。

输入格式:

一个正整数N(N<1000000)

输出格式:

一个正整数,表示不大于N的数字,经过冰雹数变换过程中,最高冲到了多少。

例如,输入:

10

程序应该输出:

52

再例如,输入:

100

程序应该输出:

9232

  1. #题目样例有问题
  2. n=int(input())
  3. max_value=-10**10
  4. while n!=1:
  5. if n%2==0:
  6. n//=2
  7. else:
  8. n=n*3+1
  9. if n>max_value:
  10. max_value=n
  11. print(max_value)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/592711
推荐阅读
相关标签
  

闽ICP备14008679号