根據題目可知期望的結果如下:
數字:
2100
210o的反數為∶12
數字:-
2100
-2100的反數為∶-
12數字:
2001
2001的反數為:
1002
數字:-
2010
-2010的反數為:
-102
首先我們要判斷該字串是否由數字組成(包括負號),python自帶的函式isdigit()只能判斷正整數,isnumeric()只針對unicode物件。為了判斷負數,我們建立自定義函式is_number()來判斷字串是否為數字:
'''
'''def
is_number
(s):
try:
float
(s)return
true
except valueerror:
pass
try:
import unicodedata
unicodedata.numeric(s)
return
true
except
(typeerror, valueerror)
:pass
return
false
測試結果如下:
數字:
210true
數字:-
210true
數字:ad2
false
數字:-ad12
false
數字:1ad2w
false
數字:-2asd
false
將字串轉為數字,判斷數字是否在(-2)31至231之間,若不在,提示超出範圍:
數字:
2200000000
超出限定範圍!
數字:-
2200000000
超出限定範圍!
若在,計算該數的反數:其中,若數為負數,則除去第乙個字元再計算:
'''
'''if b>
pow(-2
,31)and b<
pow(2,
31):if b<0:
y=a[1:
:]x=y[::
-1]print
(a+"的反數為:"
+"-"
+x)else
: x=a[::
-1]print
(a+"的反數為:"
+x)else
:print
("超出限定範圍!"
)
如果認為寫到這裡就可以結束,就會出現如下結果:
數字:
2100
2100的反數為:
0012
為避免該情況,在**中新增一些細節,判斷反過來的字串第乙個字元是否為0,若是,除去第乙個字元:
'''
'''if b<0:
y=a[1:
:]x=y[::
-1]while x[0]
=='0'
: x=x[1:
:]print
(a+"的反數為:"
+"-"
+x)else
: x=a[::
-1]while x[0]
in['0']
: x=x[1:
:]print
(a+"的反數為:"
+x)
到這裡我們就完全做出來這個題目了,除錯結果如下:
數字:
1235
1235的反數為:
5321
數字:1200
1200的反數為:
21數字:
-325
-325的反數為:
-523
數字:-
320-
320的反數為:
-23
平方十位數
由0 9這10個數字不重複 不遺漏,可以組成很多10位數字。這其中也有很多恰好是平方數 是某個數的平方 比如 1026753849,就是其中最小的乙個平方數。請你找出其中最大的乙個平方數是多少?include include includeusing namespace std 定義乙個判斷乙個十位...
藍橋 平方十位數
題目 由0 9這10個數字不重複 不遺漏,可以組成很多10位數字。這其中也有很多恰好是平方數 是某個數的平方 比如 1026753849,就是其中最小的乙個平方數。請你找出其中最大的乙個平方數是多少?注意 你需要提交的是乙個10位數字,不要填寫任何多餘內容。解法1 運用next permutatio...
藍橋杯 平方十位數 DFS
1.題目 由0 9這10個數字不重複 不遺漏,可以組成很多10位數字。這其中也有很多恰好是平方數 是某個數的平方 比如 1026753849,就是其中最小的乙個平方數。請你找出其中最大的乙個平方數是多少?2.解決方法 dfs 模板 3.include include include include ...