日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基本数字运算

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基本数字运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本數字運算

一.如何判斷一個自然數是否是某個數的平方

def isPower(n):if n<=0:print(n+"不是自然數")return Falsei=1while i<n:m=i*iif m==n:return Trueelif m>n:return Falsei+=1return Falseif __name__=="__main__":n1=15n2=16if isPower(n1):print(str(n1)+"是某個自然數的平方")else:print(str(n1)+"不是某個自然數的平方")if isPower(n2):print(str(n2)+"是某個自然數的平方")else:print(str(n2)+"不是某個自然數的平方") 15不是某個自然數的平方 16是某個自然數的平方

2.二分查找法

def isPower(n):low=1high=nwhile low<high:mid=int((low+high)/2)power=mid*midif power>n:high=mid-1elif power<n:low=mid+1else:return Truereturn Falseif __name__=="__main__":n1=15n2=16if isPower(n1):print(str(n1)+"是某個自然數的平方")else:print(str(n1)+"不是某個自然數的平方")if isPower(n2):print(str(n2)+"是某個自然數的平方")else:print(str(n2)+"不是某個自然數的平方") 15不是某個自然數的平方 16是某個自然數的平方

3.減法運算法

def isPower(n):minus=1while n>0:n=n-minusif n==0:return Trueelif n<0:return Falseelse:minus+=2return Falseif __name__=="__main__":n1=15n2=16if isPower(n1):print(str(n1)+"是某個自然數的平方")else:print(str(n1)+"不是某個自然數的平方")if isPower(n2):print(str(n2)+"是某個自然數的平方")else:print(str(n2)+"不是某個自然數的平方") 15不是某個自然數的平方 16是某個自然數的平方

二.如何判斷一個數是否為2的n次方

1.構造法

def isPower(n):if n<1:return Falsei=1while i<=n:if i==n:return Truei<<=1return Falseif __name__=="__main__":n1=8n2=9if isPower(n1):print(str(n1)+"能表示成2的n次方")else:print(str(n1)+"不能表示成2的n次方")if isPower(n2):print(str(n2)+"能表示成2的n次方")else:print(str(n2)+"不能表示成2的n次方") 8能表示成2的n次方 9不能表示成2的n次方

2.與操作法

def isPower(n):if n<1:return Falsem=n&(n-1)return m==0if __name__=="__main__":n1=8n2=9if isPower(n1):print(str(n1)+"能表示成2的n次方")else:print(str(n1)+"不能表示成2的n次方")if isPower(n2):print(str(n2)+"能表示成2的n次方")else:print(str(n2)+"不能表示成2的n次方") 8能表示成2的n次方 9不能表示成2的n次方

三.如何不使用除法操作實現兩個正整數的除法

1.減法

def Divide(m,n):print(str(m)+" 除以 "+str(n))res=0remain=mwhile m>n:m-=nres+=1remain=mprint("商為:"+str(res)+" 余數:"+str(remain))if __name__=="__main__":m=14n=4Divide(m,n) 14 除以 4 商為:3 余數:2

2.移位法

五.如何根據已知隨機數生成函數計算新的隨機數

import randomdef Rand7():return int(random.uniform(1,7))def Rand10():x=0while True:x=(Rand7()-1)*7+Rand7()if x<=40:breakreturn x%10+1if __name__=="__main__":i=0while i!=10:print(Rand10(),end=" ")i+=1 1 9 6 5 1 3 6 2 6 9

六.如何判斷1024!末尾有多少個0

1.蠻力法

2.因子法

def ZeroCount(n):count=0while n>0:n=int(n/5)count+=nreturn countif __name__=="__main__":print("1024!末尾0的個數為:"+str(ZeroCount(1024))) 1024!末尾0的個數為:253

七.如何按要求比較兩個數的大小

def Maxs(a,b):return int(((a+b)+abs(a-b))/2)if __name__=="__main__":print(Maxs(5,6)) 6

八.如何求有序數列的第1500個數的值

1.蠻力法

def Search(n):count=0i=1while True:if i%2==0 or i%3==0 or i%5==0:count+=1if count==n:breaki+=1return iif __name__=="__main__":print(Search(1500)) 2045

2.數字規律法

def Search(n):a=[0,2,3,4,5,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,28,30]ret=int((n/22))*30+a[n%22]return retif __name__=="__main__":print(Search(1500)) 2045

九.如何把十進制數(long 型)分別以二進制和十六進制形式輸出

def InttoBinary(n):hexNum=8*8bit=[]for i in range(hexNum):b=n>>ic,d=divmod(b,2)bit.append(str(d))return "".join(bit[::-1])def InttoHex(s):hexs=""remainder=0while s!=0:remainder=s%16if remainder<10:hexs=str(remainder+int('0'))+hexselse:hexs=str(remainder-10+ord('A'))+hexss=s>>4return chr(int(hexs))if __name__=="__main__":print("10的二進制輸出為:"+InttoBinary(10))print("10的十六進制輸出為:"+InttoHex(10)) 10的二進制輸出為:0000000000000000000000000000000000000000000000000000000000001010 10的十六進制輸出為:A

十.如何求二進制數中1的個數

1.移位法

def CountOne(n):count=0while n>0:if (n&1)==1:count+=1n>>=1return countif __name__=="__main__":print(CountOne(7))print(CountOne(8)) 3 1

2.與操作法

def CountOne(n):count=0while n>0:if n!=0:n=n&(n-1)count+=1return countif __name__=="__main__":print(CountOne(7))print(CountOne(8)) 3 1

十一.如何找最小的不重復數

十二.如何計算一個數的n次方

1.蠻力法

def Power(d,n):if n==0:return 1if n==1:return dresult=1if n>0:i=1while i<=n:result*=di+=1return resultelse:i=1while i<=abs(n):result=result/di+=1return resultif __name__=="__main__":print(Power(2,3))print(Power(-2,3))print(Power(2,-3)) 8 -8 0.125

2.遞歸法

def Power(d,n):if n==0:return 1if n==1:return dtmp=Power(d,int(abs(n)/2))if n>0:if n%2==1:return tmp*tmp*delse:return tmp*tmpelse:if n%2==1:return 1/(tmp*tmp*d)else:return 1/(tmp*tmp)if __name__=="__main__":print(Power(2,3))print(Power(-2,3))print(Power(2,-3)) 8 -8 0.125

十三.如何在不能使用庫函數的條件下計算n的平方根

def SquareRoot(n,e):new_one=nlast_one=1.0while new_one-last_one>e:new_one=(new_one+last_one)/2last_one=n/new_onereturn new_oneif __name__=="__main__":n=50e=0.000001print(str(n) + "的平方根%.6f " %SquareRoot(n, e))n=4print(str(n) + "的平方根%.6f " %SquareRoot(n, e)) 50的平方根7.071068 4的平方根2.000000

十四.如何不使用^操作實現異或運算

class MyXor:def __init__(self):self.BITS=32def xor(self,x,y):res=0i=self.BITS-1while i>=0:b1=(x&(1<<i))>0b2=(y&(1<<i))>0if b1==b2:xoreBit=0else:xoreBit=1res<<=1res|=xoreBiti-=1return resif __name__=="__main__":x=3y=5mx=MyXor()print(mx.xor(x,y)) 6 def Xor(x,y):return (x|y)&(~x|~y)if __name__=="__main__":x=3y=5print(Xor(x,y)) 6

十五.如何不使用循環輸出1到100

總結

以上是生活随笔為你收集整理的基本数字运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。