內容選單標籤

2019年11月25日 星期一

CH9 初學5題

---------------------- 9-1 九九乘法表

for i in range(1,10):                #印直行
    for j in range(1,10):            #印橫行
        print("%3d" %(i*j),end=' ')
    print()


  1   2   3   4   5   6   7   8   9
  2   4   6   8  10  12  14  16  18
  3   6   9  12  15  18  21  24  27
  4   8  12  16  20  24  28  32  36
  5  10  15  20  25  30  35  40  45
  6  12  18  24  30  36  42  48  54
  7  14  21  28  35  42  49  56  63
  8  16  24  32  40  48  56  64  72
  9  18  27  36  45  54  63  72  81









---------------------- 9-2 費氏數列

a,b=0,1
print(a,b,end=' ')
n=1000

while a+b<n:
    c=a+b
    print(c,end=' ')
    a=b
    b=c
print()


0 1 1  2  3  5  8  13  21  34  55  89  144  233  377  610  987  







---------------------- 9-3 猜數字遊戲

import random
c=0;guess=0;play='y'
n=random.randint(1,100)
while (guess != n) and ((play != 'y') or (play != 'Y')):
    guess=int(input("請輸入 (1~100) ?"))
    c=c+1
    if (guess >n):
        print("too big")
    elif(guess<n):
        print("too small")
    else:
        play=input("你猜對了,要繼續ㄇ(Y/N)?")
        if (play=='n') or (play == 'N'):
            break
        n=random.randint(1,100)
        c=0
    print("你已經猜了:",c,"次")
print(" 答案是:",n)












---------------------- 9-4 最大公因數 GCD


x=12;y=18
if(x>y):
    x,y=y,x
m=x;x=y
while(m>0):
    y=x;x=m;m=y%x
print(x)


6




---------------------- 9-5 數制轉換  十進制 轉 二進、八進、 十六進


def numsys(dec,ns):
    n=dec
    x=''
    hstr="0123456789ABCDEF"
    if (n==0):
        x='0'
    while(n>0):
        x=hstr[(n%ns):(n%ns)+1]+x
        n= n//ns
    return x
dec=18
print("十進制:",dec,":")
print("二進制=",numsys(dec,2))
print("八進制=",numsys(dec,8))
print("十六進制=",numsys(dec,16))


十進制: 18 :
二進制= 10010
八進制= 22
十六進制= 12


*********2024/03/28

def NumSys(dec,NS):
    
    RtnS=""
    AllStr="0123456789ABCDEF"
    if dec==0:RtnS="0"
    while dec>0:
        RtnS=AllStr[dec%NS:(dec%NS)+1]+RtnS
        dec=dec//NS
    return RtnS


N=int(input("請輸入任一大於0正整數:"))
print(str(N)+ " 的 二  進制=",NumSys(N,2))
print(str(N)+ " 的 八  進制=",NumSys(N,8))
print(str(N)+ " 的 十六進制=",NumSys(N,16))

請輸入任一大於0正整數:18
18 的 二  進制= 10010
18 的 八  進制= 22
18 的 十六進制= 12



沒有留言:

張貼留言