1、愷撒密碼 Igit
描述算法
凱撒密碼是古羅馬凱撒大帝用來對軍事情報進行加解密的算法,它採用了替換方法對信息中的每個英文字符循環替換爲字母表序列中該字符後面的第三個字符,即,字母表的對應關係以下:app
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z學習
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C測試
對於原文字符P,其密文字符C知足以下條件:C=(P+3) mod 26加密
上述是凱撒密碼的加密方法,解密方法反之,即:P=(C-3) mod 26spa
假設用戶可能使用的輸入僅包含小寫字母a~z和空格,請編寫一個程序,對輸入字符串進行凱撒密碼加密,直接輸出結果,其中空格不用進行加密處理。使用input()得到輸入。code
plaincode=input() for p in plaincode: if ord("a")<=ord(p)<=ord("z"): print(chr(ord("a")+(ord(p)-ord("a")+3)%26),end='') else: print(p,end='')
2、愷撒密碼 Borm
描述blog
愷撒密碼是古羅馬凱撒大帝用來對軍事情報進行加解密的算法,它採用了替換方法對信息中的每個英文字符循環替換爲字母表序列中該字符後面的第三個字符,即,字母表的對應關係以下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
對於原文字符P,其密文字符C知足以下條件:C = (P+3) mod 26
上述是凱撒密碼的加密方法,解密方法反之,即:P = (C-3) mod 26
假設用戶可能使用的輸入僅包含西文字母,即英文大小寫字母a~zA~Z和特殊字符,請編寫一個程序,對輸入字符串進行凱撒密碼加密,直接輸出結果,其中特殊字符不進行加密處理。
plaincode=input() for p in plaincode: if ord("a")<=ord(p)<=ord("z"): print(chr(ord("a")+(ord(p)-ord("a")+3)%26),end='') elif ord("A")<=ord(p)<=ord("Z"): print(chr(ord("A")+(ord(p)-ord("A")+3)%26),end='') else: print(p,end='')
3、括號配對檢測 A
描述
用戶輸入一行字符串,其中可能包括小括號 (),請檢查小括號是否配對正確,配對成功與否分別輸出:
配對成功,配對不成功
其中,小括號配對要考慮配對順序,即()表示配對,)(不是配對,只考慮小括號配對。
注意,這是一個OJ題目,得到輸入使用input("")。
Str=input("") Left_bracket=0 Left_bracket_Z=0 Right_bracket_Z=0 for i in Str: if i== '(': Left_bracket+=1 elif i== ')': if Left_bracket>0: Left_bracket-=1 else: print("配對不成功") break else: if Left_bracket!=0: print("配對不成功") elif Left_bracket_Z!=Right_bracket_Z: print("配對不成功") else: print("配對成功")
4、星號三角形 I
描述
讀入一個整數N,N是奇數,輸出由星號字符組成的等邊三角形,要求:
第1行1個星號,第2行3個星號,第3行5個星號,依次類推,最後一行共N的星號。
n = eval(input()) p = int((n + 1) / 2) for i in range(1, p + 1, 1): for j in range(p - i): print(" ", end = "") for k in range(2 * i - 1): print("*",end = "") for q in range(p - i): print(" ", end = "") print()
5、整數階乘組合計算
描述
給定正整數n、a,求最大的k,使n!能夠被a^k整除但不能被a^(k+1)整除。
n和a採用一次input()調用輸入,兩個數使用逗號(,)分隔,直接輸出k值。
n,a=eval(input()) nn=1 for i in range(1,n+1): nn=i*nn for k in range(1,n) if nn % a**k == 0 and nn % a**(k+1)!= 0: print(k)
6、整數逆位運算
描述
對整數除符號爲外的數字進行逆位操做。
例如 x = 123,返回321;x = -123,返回-321。
import math number=input() if int(number)==0: number_result=0 elif number.isdigit() and int(number)>=0: number_new=number[::-1] number_result=int(number_new.lstrip("0")) else: number_result =-int((number[1:][::-1]).lstrip("0")) print(number_result)
7、圓面積的計算 A
描述
根據圓半徑計算圓面積,結果保留兩位小數。其中,圓周率使用 3.1415。
此題目是AutoOJ(自動評閱)類型,請注意:
1. 得到輸入請使用input(""),不要增長提示信息
2. 輸出與要求一致
radius=eval(input()) area=3.1415*radius*radius print("{:.2f}".format(area))
8、貨幣轉換 B
描述
人民幣和美圓是世界上通用的兩種貨幣之一,寫一個程序進行貨幣間幣值轉換,其中:
人民幣和美圓間匯率固定爲:1美圓 = 6.78人民幣。
程序能夠接受人民幣或美圓輸入,轉換爲美圓或人民幣輸出。人民幣採用¥符號或RMB表示,美圓採用$或USD表示,符號和數值之間沒有空格。
注意:
(1) 人民幣和美圓間符號在轉換中要對等,¥和$相互對應,RMB和USD相互對應。
(2) 這是一個OJ題目,得到輸入請使用input("")
str=input("") if str[0:3] in ["USD","usd"]: R = eval(str[3:])* 6.78 print("RMB{:.2f}".format(R)) elif str[0:1] in ["$"]: R = eval(str[1:])* 6.78 print("¥{:.2f}".format(R)) elif str[0:3] in ["RMB"]: M = eval(str[3:]) / 6.78 print("USD{:.2f}".format(M)) elif str[0:1] in ["¥"]: M = eval(str[1:]) / 6.78 print("${:.2f}".format(M)) else: print("輸入格式錯誤")
9、3位水仙花數計算
描述
「3位水仙花數」是指一個三位整數,其各位數字的3次方和等於該數自己。例如:ABC是一個「3位水仙花數」,則:A的3次方+B的3次方+C的3次方 = ABC。
請按照從小到大的順序輸出全部的3位水仙花數,請用一個「逗號+空格」分隔輸出結果。
注意:這是一個OJ題目,輸出格式要嚴格一致,最後一位水仙花數後沒有逗號。
def Narcissus(): list1=[] for num in range(100,1000): a=num//100 b=num//10%10 c=num%10 if num==a**3+b**3+c**3: list1.append(num) return list1 str1=', '.join(map(str,Narcissus())) print(str1)
10、溫度轉換 II
描述
溫度的刻畫有兩個不一樣體系:攝氏度(Celsius)和華氏度(Fabrenheit)。
請編寫程序將用戶輸入華氏度轉換爲攝氏度,或將輸入的攝氏度轉換爲華氏度。
轉換算法以下:(C表示攝氏度、F表示華氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求以下:
(1) 輸入輸出的攝氏度採用大寫字母C開頭,溫度能夠是整數或小數,如:C12.34指攝氏度12.34度;
(2) 輸入輸出的華氏度採用大寫字母F開頭,溫度能夠是整數或小數,如:F87.65指攝氏度87.65度;
(3) 不考慮異常輸入的問題,輸出保留小數點後兩位;
(4) 使用input()得到測試用例輸入時,不要增長提示字符串。
TempStr = input() if TempStr[0] in['f','F']: C = (eval(TempStr[1:])-32)/1.8 print("C{:.2f}".format(C)) elif TempStr[0] in['C','c']: F = 1.8*eval(TempStr[1:])+32 print("F{:.2f}".format(F))
11、貨幣轉換 C
描述
人民幣和美圓是世界上通用的兩種貨幣之一,寫一個程序進行貨幣間幣值轉換,其中:
人民幣和美圓間匯率固定爲:1美圓 = 6.78人民幣。
程序能夠接收人民幣或美圓輸入,轉換爲美圓或人民幣輸出。人民幣採用¥符號或RMB表示,美圓採用$或USD表示,符號和數值之間沒有空格。
注意:
(1) 人民幣和美圓間符號在轉換中要對等,¥和$相互對應,RMB和USD相互對應,輸出結果保留小數點後兩位;
(2) 符號在數字的後面;
(3) 這是一個OJ題目,得到輸入請使用input() 。
str=input("") if str[-3::] in ["USD","usd"]: R = eval(str[:-3:])* 6.78 print("{:.2f}RMB".format(R)) elif str[-1] in ["$"]: R = eval(str[:-1])* 6.78 print("{:.2f}¥".format(R)) elif str[-3::] in ["RMB"]: M = eval(str[:-3:]) / 6.78 print("{:.2f}USD".format(M)) elif str[-1] in ["¥"]: M = eval(str[:-1]) / 6.78 print("{:.2f}$".format(M)) else: print("輸入格式錯誤")
12、每天向上的力量 III
描述
一年365天,以第1天的能力值爲基數,記爲1.0。
當好好學習時,能力值相比前一天提升N‰;當沒有學習時,能力值相比前一天降低N‰。
天天努力或聽任,一年下來的能力值相差多少呢?其中,N的取值範圍是0到100,N能夠是小數,假設輸入符合要求。
得到用戶輸入的N,計算天天努力和天天聽任365天后的能力值及能力間比值,其中,能力值保留小數點後2位,能力間比值輸出整數,輸出結果間採用英文逗號分隔。
使用input()得到N。
N=eval(input()) daydayup=pow((1.0+N/1000),365) daydaydn=pow((1.0-N/1000),365) print("{:.2f}".format(daydayup)+","+"{:.2f}".format(daydaydn)+","+str(int(daydayup//daydaydn)))
十3、快樂的數字
描述
編寫一個算法來肯定一個數字是否「快樂」。 快樂的數字按照以下方式肯定:從一個正整數開始,用其每位數的平方之和取代該數,並重復這個過程,直到最後數字要麼收斂等於1且一直等於1,要麼將無休止地循環下去且最終不會收斂等於1。可以最終收斂等於1的數就是快樂的數字。
例如: 19 就是一個快樂的數字,計算過程以下:
當輸入時快樂的數字時,輸出True,不然輸出False。
def xj(n): list = [int(i)for i in str(n)] s = 0 for i in range(0,len(list)): s = s + list[i] return s n = input() while xj(n)>=10: n = xj(n) else: if xj(n)==1: print('True') else: print('False')