华为笔试编程python

def function1():
    '''写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。
     如:100个1是一个组合,5个1加19个5是一个组合。。。'''
    number=0
    for i in range(101):
        for j in range(51):
            for z in range(21):
                if i*1+j*2+z*5==100:
                    number+=1
    print(number)
#function1()

def function2():
    '''2、实现一个函数,把一个字符串中的字符从小写转为大写。'''
    mystr=input('input a string\n')
    mystr=mystr.upper()
    print(mystr)
#function2()
def function3():
    '''随机输入一个数,判断它是不是对称数(回文数)
    (如3,121,12321,45254)。不能用字符串库函数 '''
    while(True):
        myNumber=input('输入数')
        if myNumber=='quit':
            break
        else:
            myReversedNum=myNumber[::-1]
            if myNumber==myReversedNum:
                print(True)
            else:
                print(False)
#function3()
a=[1,2,3,7,0]
b=list(reversed(a))
print(b)#[0, 7, 3, 2, 1]
def function4():
    '''给定一个数n,计算n与斐波那契数的最小差值。
    斐波那契数的序列:1,1,2,3,5,8,13,21,,,,等'''
    while(True):
        number = input("输入数字 :")
        if number=='quit':
            break
        else:
            feiboNumber=np.zeros(30)
            for i in range (len(feiboNumber)):
                if i==0 :
                    feiboNumber[0]=1
                elif i==1:
                    feiboNumber[1]=1
                else:
                    feiboNumber[i]=feiboNumber[i-1]+feiboNumber[i-2]
            errorOfDistance=min(abs(feiboNumber - np.array([int(number)] *len(feiboNumber))))
            print(errorOfDistance)
function4()


你可能感兴趣的:(python)