题目:圆的面积
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
给定圆的半径r,求圆的面积。
输入格式
输入包含一个整数r,表示圆的半径。
输出格式
输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
样例输入
4
样例输出
50.2654825
数据规模与约定
1 <= r <= 10000。
提示
本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。
题目分析与代码:
输入:一个整数作为半径:
n=int(input())
处理:求圆的面积:area=PI*n*n
round_area=round(area,7)
(注:round()是python自带的一个函数,用于数字的四舍五入)
输出:输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积:
print("{:.7}f".format(round_area)
代码:这道题并不难,主要是要注意输出的格式
PI=3.14159265358979323
n=int(input())
area=PI*n*n
round_area=round(area,7)
print("{:.7f}".format(round_area))
知识点补充:
round(number,digits)用于数字的四舍五入
题目二:Fibonacci数列
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式
输入包含一个整数n。
输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
样例输入
10
样例输出
55
题目分析和代码:
n = int(input())
F = [1, 1]
if n <= 2:
for item in range(n):
F.append(F[item] + F[item + 1])
print(F[n - 1]%10007)
else:
for item in range(n - 2):
result = (F[0] + F[1]) % 10007 # 计算出下一项后直接取余数,不影响结果
F[0], F[1] = F[1], result
print(result) # 直接输出余数,不需要再除10007
题目:基础练习 闰年判断
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:
1. 年份是4的倍数而不是100的倍数;
2. 年份是400的倍数。
其他的年份都不是闰年。
输入格式:y=int(input())
输入包含一个整数y,表示当前的年份。
输出格式:print('yes') print('no')
输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
题目分析与代码
过程:
if y%4==0&&y%100!=0:
elif y%400==0:
else:
代码:
y=int(input())
if y%4==0 and y%100!=0:
print('yes')
elif y%400==0:
print('yes')
else:
print('no')
题目:基础练习 01字串
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
题目分析与代码
处理:首先是要观察数的变化
因为数据规模不是很大可以直接用五个for循环暴力输出。
for i in range(2):
for j in range(2):
for k in range(2):
for m in range(2):
for l in range(2):
print(i,j,k,m,l,sep='')
题目:字母图形
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式:
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
num=list(map(int,input().split()))
n=num[0]
m=num[1]
输出格式:
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。
题目分析与代码:
处理:
存入m个英文字母:
# 从a到z循环m次,每次将下一个字母追加到列表中
l=[]
for i in range(m):
l.append(chr(65 + i)) # chr() 函数用于转换ASCII码,65是'a'的ASCII值,+i递增
输出设置:
观察字母的输出位置变化:
一行中的左右输出格式设计:首先是确定A的位置
思考:难点在于观察字母的变化,然后转化成自己想要的输出格式
设置变量abs(i-j)用来确定A的位置,通过k的自减和自增来完成字母的输出
n,m=map(int,input().split())
for i in range(n):
for j in range(m):
print(chr(65 + abs(i-j)),end='')
print("")
(就先到这吧,累了)