题目 1010: [编程入门]利润计算

时间限制: 1Sec 内存限制: 128MB 提交: 18739 解决: 12971

题目描述
企业发放的奖金根据利润提成。利润低于或等于100000元的,奖金可提10%;
利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%;
200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成;
400000<I≤600000元时,高于400000元的部分按3%提成;

600000<I≤1000000时,高于600000元的部分按1.5%提成;
I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。

输入
一个整数,当月利润。

输出
一个整数,奖金。

样例输入
900
样例输出
90

profit=[0,100000,200000,400000,600000,1000000]
rate = [0.1,0.075,0.05,0.03,0.015,0.01]
income=int(input())     #输入利润,整数
i=1                      #python不支持i++
j=1
summer=0
while profit[i]<income:
    summer=summer+(profit[i]-profit[i-1])*rate[j-1]
    i+=1
    j+=1
summer+=(income-profit[i-1])*rate[j-1]    #计算最大分段后多余部分
print(int(summer))

题目 1011: [编程入门]最大公约数与最小公倍数

时间限制: 1Sec 内存限制: 128MB 提交: 21046 解决: 12512

题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入
两个整数
输出
最大公约数,最小公倍数
样例输入
5 7
样例输出
1 35

li = list(map(int,input().strip().split()))
a = li[0]
b = li[1]
for i in range(min(a,b),0,-1):
    if a%i==0 and b%i==0:
        max_num = i
        break

for i in range(max(a,b),a*b+1):
    if i%a==0 and i%b==0:
        min_num = i
        break
print(max_num,min_num)

题目 1012: [编程入门]字符串分类统计

时间限制: 1Sec 内存限制: 128MB 提交: 20491 解决: 10915

题目描述
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

输入
一行字符

输出
统计值

样例输入
aklsjflj123 sadf918u324 asdf91u32oasdf/.’;123
样例输出
23 16 2 4

li = input()
char_num = 0
int_num = 0
tem_num = 0
oth_num=  0
for i in li:
    if i.isalpha():
        char_num+=1
    elif i.isdigit():
        int_num+=1
    elif i.isspace():
        tem_num+=1
    else:
        oth_num+=1
print(char_num,int_num,tem_num,oth_num)

题目 1013: [编程入门]Sn的公式求和

时间限制: 1Sec 内存限制: 128MB 提交: 16306 解决: 11558

题目描述
求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。

输入
n

输出
Sn的值

样例输入
5
样例输出
24690

n = eval(input())
ac = 0
d = 2
for i in range(n,0,-1):
    ac+=d*i
    d*=10
print(ac)

题目 1014: [编程入门]阶乘求和

时间限制: 1Sec 内存限制: 128MB 提交: 44084 解决: 10272

题目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

输入
n

输出
Sn的值

样例输入
5
样例输出
153

n = eval(input())
sn=0
jc=1
for i in range(1,n+1):
    jc*=i
    sn+=jc
print(sn)

题目 1015: [编程入门]求和训练

时间限制: 1Sec 内存限制: 128MB 提交: 16819 解决: 10597

题目描述
求以下三数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和
输入
a b c
输出
1+2+…+a + 12+22+…+b^2 + 1/1+1/2+…+1/c
样例输入
100 50 10
样例输出
47977.93

z=input().split()
a=int(z[0])
b=int(z[1])
c=int(z[2])
def lj(n):
    if n==0:
        return 0
    else:
        return n+lj(n-1)
def pfh(n):
    if n==0:
        return 0
    else:
        return n**2+pfh(n-1)
def dsh(n):
    if n==1:
        return 1
    else:
        return (float)(1/n+dsh(n-1))
print('%.2f'%(lj(a)+pfh(b)+dsh(c)))

题目 1016: [编程入门]水仙花数判断

时间限制: 1Sec 内存限制: 128MB 提交: 16896 解决: 11950

题目描述
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=13+53+3^3。
输入

输出
输出每一个水仙花数,一个数占一行
样例输入

样例输出

for i in range(100,1000):
    a=int(str(i)[0])
    b=int(str(i)[1])
    c=int(str(i)[2])
    if a*a*a+b*b*b+c*c*c == i:
        print(i)

题目 1017: [编程入门]完数的判断

时间限制: 1Sec 内存限制: 128MB 提交: 17317 解决: 8580

题目描述
一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子

输入
N

输出
? its factors are ? ? ?

样例输入
1000
样例输出
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248

def fun(n):
    ys = [1]
    sums = 1
    for i in range(2,int(pow(n,0.5))+1):
        if n%i == 0:
            ys.append(i)
            ys.append(int(n/i))
            sums+=i+int(n/i)
    if sums==n:
        ys.sort()
        print("{} its factors are ".format(n),end="")
        for i in ys:
            print(i,end=" ")
        print()


n = eval(input())
for x in range(2,n):
    fun(x)

题目 1018: [编程入门]有规律的数列求和

时间限制: 1Sec 内存限制: 128MB 提交: 13816 解决: 9715

题目描述
有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13… 求出这个数列的前N项之和,保留两位小数。
输入
N
输出
数列前N项和
样例输入
10
样例输出
16.48

n = eval(input())
lis = [1,2]
if n >=3:
    ans = 2/1+3/2
    for i in range(2,n):
        lis.append(lis[i-2]+lis[i-1])
        ans+=(lis[i-1]+lis[i])/lis[i]
elif n==1:
    ans=2/1
else:
    ans=2/1+3/2
print("%.2f"%ans)

题目 1019: [编程入门]自由下落的距离计算

时间限制: 1Sec 内存限制: 128MB 提交: 15461 解决: 9310

题目描述
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
输入
M N
输出
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
样例输入
1000 5
样例输出
31.25 2875.00

M,N=map(int,input().strip().split())
total_meter_num=0
for i in range(N):
    now_high=M/2
    total_meter_num=total_meter_num+M+now_high
    M/=2
print("%.2f %.2f"%(now_high,total_meter_num-now_high))

题目 1020: [编程入门]猴子吃桃的问题

时间限制: 1Sec 内存限制: 128MB 提交: 13749 解决: 9567

题目描述
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
输入
N
输出
桃子总数
样例输入
10
样例输出
1534

n = eval(input())
m=1
for i in range(0,n-1):
    m=2*(m+1)
print(m)