-
P5718 【深基4.例2】找最小值
n=int(input())
numbers=list(map(int,input().split()))
min_num=numbers[0]
for i in range (1,n):
if numbers[i]<min_num:
min_num=numbers[i]
print(min_num)
- P5719 【深基4.例3】分类平均
n,k=map(int,input().split())
sum_a=0
n_a=0
sum_b=0
n_b=0
for i in range(1,n+1):
if i%k==0:
sum_a+=i
n_a+=1
else:
sum_b+=i
n_b+=1
average_a=round(sum_a/n_a,1)
average_b=round(sum_b/n_b,1)
print(f"{average_a} {average_b}")
-
P5720 【深基4.例4】一尺之棰
import math
a=int(input())
n=0
while a>1:
a=math.floor(a/2)
n+=1
print(n+1)
- P5721 【深基4.例6】数字直角三角形
n = int(input())
temp = 0
for i in range(n):
for j in range(n - i):
temp += 1
print(str(temp).zfill(2), end='')
print()
- P1009 [NOIP1998 普及组] 阶乘之和
def fac(n):
if n==0 or n==1:
return 1
else:
return n*fac(n-1)
s=int(input())
fac_sum=0
for j in range(1,s+1):
fac_sum+=fac(j)
print(str(fac_sum))
-
P1980 [NOIP2013 普及组] 计数问题
n,x=map(int,input().split())
count=0
for i in range(1,n+1):
count+=str(i).count(str(x))
print(count)
- P1035 [NOIP2002 普及组] 级数求和
k=int(input())
Sn=0
n=0
while Sn<=k:
n+=1
Sn+=1/n
print(n)
-
P2669 [NOIP2015 普及组] 金币
k = int(input())
total_coins=0
days_passed=0
current_streak=1
coins_today=1
while days_passed<k:
days_to_add=min(current_streak,k-days_passed)
total_coins+=coins_today*days_to_add
days_passed+=days_to_add
current_streak+=1
coins_today+=1
print(total_coins)
- P5723 【深基4.例13】质数口袋
def prime(n):
if n<=1:
return False
elif n==2:
return True
elif n>2:
for i in range(2,n):
if n%i==0:
return False
return True
L=int(input())
primes_sum=0
n=0
i=2
while primes_sum+i<=L:
if prime(i):
print(i,end='\n')
primes_sum+=i
n+=1
i+=1
print(n)
-
P1217 [USACO1.5] 回文质数 Prime Palindromes
下面这段只有66分,报“Time Limit Exceeded.”
from math import sqrt
def prime(n):
if n<=1:
return False
elif n==2:
return True
elif n>2:
for i in range(2,int(sqrt(n))+1):
if n%i==0:
return False
return True
def palindromes(m):
s=str(m)
return s==s[::-1]
a,b=map(int,input().split())
for i in range(a,b+1):
if palindromes(i) and prime(i):
print(i)
通过构造回文数改正之后通过!
from math import sqrt
def prime(n):
if n<=1:
return False
if n==2:
return True
if n%2==0:
return False
for i in range(3,int(sqrt(n))+1,2):
if n%i==0:
return False
return True
def palindromes(m):
s=str(m)
return s==s[::-1]
def generate_palindromes(start,end):
def create_palindrome(input_number,is_odd_length):
palindrome=input_number
if is_odd_length:
input_number//=10
while input_number>0:
palindrome=palindrome*10+(input_number%10)
input_number//=10
return palindrome
palindromes_list=[]
min_len=len(str(start))
max_len=len(str(end))
for length in range(min_len,max_len+1):
half_len=10**((length-1)//2)
upper_half_limit=10*half_len
for first_half in range(half_len,upper_half_limit):
for odd_length in [True, False]:
p=create_palindrome(first_half,odd_length)
if start<=p<=end:
palindromes_list.append(p)
elif p>end:
break
return sorted(set(palindromes_list))
a, b = map(int, input().split())
palindromes_list=generate_palindromes(a,b)
for p in palindromes_list:
if prime(p):
print(p)
-
P1423 小玉在游泳
s=float(input())
step=0
distance=0
first_distance=2
current_distance=first_distance
while distance<s:
distance+=current_distance
step+=1
current_distance=current_distance*0.98
print(step)
-
P1307 [NOIP2011 普及组] 数字反转
N=int(input())
new_N=0
negative=N<0
if N==0:
print(0)
else:
N=abs(N)
while N>0:
new_N=new_N*10+N%10
N//=10
if negative:
print(-new_N)
else:
print(new_N)
-
P1720 月落乌啼算钱(斐波那契数列)
import math
n=int(input())
fibonacci=pow((1+math.sqrt(5))/2,n)-pow((1-math.sqrt(5))/2,n)
fn=fibonacci/math.sqrt(5)
print(format(fn,'.2f'))
-
P5724 【深基4.习5】求极差 / 最大跨度值
n=int(input())
nums=list(map(int,input().split()))
min_num=nums[0]
max_num=nums[0]
for i in range(n):
if min_num>nums[i]:
min_num=nums[i]
if max_num<nums[i]:
max_num=nums[i]
print(max_num-min_num)
-
P1420 最长连号
n=int(input())
nums=list(map(int,input().split()))
max_len=0
current_len=0
for i in range(n):
if nums[i-1]+1==nums[i]:
current_len+=1
else:
current_len=1
max_len=max(max_len,current_len)
print(max_len)
-
P1075 [NOIP2012 普及组] 质因数分解
n = int(input())
for i in range(2,n+1):
if n%i==0:
smaller_prime=i
break
larger_prime=n//smaller_prime
print(larger_prime)
-
P5725 【深基4.习8】求三角形
n=int(input())
for i in range(1,(n*n)+1):
if i%n==0:
print("%02d" %i)
else:
print("%02d" %i,end='')
print()
count=1
for i in range(1,n+1):
print(" "*(n-i)*2,end='')
for j in range(1,i+1):
if j==i:
print("%02d" %count)
else:
print("%02d" %count,end='')
count+=1
-
P5726 【深基4.习9】打分
n=int(input())
grades=list(map(int,input().split()))
low_grade=min(grades)
high_grade=max(grades)
grades.remove(high_grade)
grades.remove(low_grade)
average=sum(grades)/len(grades)
print(f"{average:.2f}")
-
P4956 [COCI2017-2018#6] Davor
n=int(input())
for x in range(100,0,-1):
if (n-364*x)%1092==0:
k=(n-364*x)//1092
if k>0:
break
print(x)
print(k)
-
P1089 [NOIP2004 提高组] 津津的储蓄计划
current_money,saved_money=0,0
for month in range(1,13):
current_money+=300-int(input())
if current_money<0:
print(f"-{month}")
break
save_this_month=current_money//100*100
if save_this_month>0:
saved_money+=save_this_month
current_money-=save_this_month
else:
print(int(current_money+saved_money*1.2))
1431

被折叠的 条评论
为什么被折叠?



