7-1 sdut-sel-10 直角坐标系象限判断
while(1):
try:
n, m = map(int, input().split())
if n > 0 and m > 0 :
print(1)
elif n < 0 and m > 0 :
print(2)
elif n < 0 and m < 0 :
print(3)
elif n > 0 and m < 0 :
print(4)
except:
break
7-2 sdut-sel-2 汽车超速罚款(选择结构)
n, m = map(int, input().split())
if n >= m :
print("Congratulations, you are within the speed limit!")
else :
if m - n >= 1 and m - n <= 20 :
print("You are speeding and your fine is 100.")
elif m - n >= 21 and m - n <= 30 :
print("You are speeding and your fine is 270.")
elif m - n >= 31 :
print("You are speeding and your fine is 500.")
7-3 sdut-运输计费问题
import math
n, m = map(float, input().split())
s = 1.0
if m >= 250 and m < 500 :
s = 1.0 - 0.02
elif m >= 500 and m < 1000 :
s = 1.0 - 0.05
elif m >= 1000 and m < 2000 :
s = 1.0 - 0.08
elif m >= 2000 and m < 3000 :
s = 1.0 - 0.10
elif m >= 3000 :
s = 1.0 - 0.15
sum = float(n * m * s)
print("%d" %(round(sum)))
7-4 sdut-阶梯电价
import math
n, m = map(float, input().split())
sum = min(n*0.53, 50.0*0.53)
if n > 50.0 :
sum += (n - 50.0) * (0.53 + m)
if n <= 0.0 :
sum = 0.0
print("cost=%.2f" %(sum))
7-5 sdut-分段计算居民水费
x = float(input())
if x <= 15.0 :
y = 4.0*x/3.0
else :
y = 2.5*x-17.5
print("%.2f" %(y))
7-6 sdut-循环-乘法运算
x = int(input())
for i in range (1, x + 1) :
now = i*x
print("%d*%d=%d" %(i, x, now))
7-7 sdut-求π的近似值
import math
x = float(input())
cnt = float(2)
sum = float(1.0)
while(1) :
if 1.0/(cnt*cnt) < x :
break
sum += 1/(cnt*cnt)
cnt += 1
sum *= 6.0
sum = math.sqrt(sum)
print("%.6f" %(sum))
7-8 sdut-求误差小于输入值的e的近似值
import math
x = float(input())
y = int(1)
pre = int(1)
sum = float(2)
while(1) :
pre *= y
y += 1
sum += (1.0/(pre*y))
if 1.0/(pre*y) < x :
break;
print("%.6f" %(sum))
7-9 sdut-入门-2 A+B for Input-Output Practice (II)
n = int(input())
while(n > 0) :
n -= 1
a, b = map(int, input().split())
print(a + b)
7-10 sdut0-入门-3 A+B for Input-Output Practice (III)
while 1 :
n, m = map(int, input().split())
if n == 0 and m == 0 :
break
print(n + m)
7-11 sdut-入门-4 A+B for Input-Output Practice (IV)
while 1:
lis = [int(num) for num in input().split()]
if lis[0] == 0 :
break
sum = 0
for i in lis:
sum += int(i)
sum -= lis[0]
print(sum)
7-12 sdut-入门-5 A+B for Input-Output Practice (V)
n = int(input())
while n > 0:
n -= 1
lis = [int(num) for num in input().split()]
if lis[0] == 0 :
break
sum = 0
for i in lis:
sum += int(i)
sum -= lis[0]
print(sum)
7-13 sdut-九九乘法表
while 1 :
try :
n = int(input())
for i in range (1, n + 1) :
for j in range(1, i) :
print("%d*%d=%d" %(j, i, i*j), end = ' ')
print("%d*%d=%d" %(i, i, i*i), end = '\n')
except:
break
7-14 sdut-平方数(I)
import math
def pingfang(n) :
n = int(n)
if math.floor(math.sqrt(n)) == math.ceil(math.sqrt(n)):
return 1
return 0
t = int(input())
while t > 0 :
t -= 1
n, m = map(int, input().split())
n, m = min(n, m), max(n, m)
sum = 0
for i in range(n, m + 1) :
if pingfang(i) == 1 :
sum += i
print(sum)
7-15 sdut-求交错序列前N项和
n = int(input())
m = 1.0
sum = 0.0
for i in range(1, n + 1) :
if i & 1 :
sum += float(i/m)
else :
sum -= float(i/m)
m += 2.0
print("%.3f" %(sum) )
7-16 sdut-生成输入数的乘方表
a,n = input().split()
n = int(n)
a = float(a)
ans = 1
print(a,end = "")
print("**0=1.00")
for i in range (1, n+1):
ans = ans*a
print(a,end = "")
print("**",end = "")
print(i,end = "")
print("=",end = "")
print("{0:.2f}".format(ans))
7-17 sdut-水仙花数
def shuixian(n, x) :
m = n
sum = 0
while(m > 0) :
now = 1
for i in range(0, x) :
now *= m%10
m //= 10
sum += now
if sum == n :
return 1
return 0
n = int(input())
l = int(1)
for i in range (0, n) :
l *= 10
r = int(l)
l //= 10
for i in range (l, r + 1) :
if(shuixian(i, n)) :
print(i)
7-18 sdut-最大公约数和最小公倍数
def gcd(a, b):
a = int(a)
b = int(b)
if b :
return gcd(b, a%b)
return a
def lcm(a, b):
a = int(a)
b = int(b)
return a*b/gcd(a, b)
while 1:
try :
n, m = map(int, input().split())
print(int(gcd(n, m)), int(lcm(n, m)))
except:
break
7-19 sdut-求满足条件的斐波那契数
n = int(input())
a = 1
b = 1
while 1:
if(a + b > n) :
print(a + b)
break
x = a
y = b
a = y
b = x + y
7-20 sdut-冒泡排序中数据交换的次数
n = int(input())
while n:
n -= 1
lis = [int(num) for num in input().split()]
del lis[0]
cnt = 0
for i in range(len(lis) - 1) :
for j in range (len(lis) - 1 - i) :
if(lis[j] > lis[j + 1]) :
lis[j], lis[j + 1] = lis[j + 1], lis[j]
cnt += 1
print(cnt)