Python重寫C語言程式100例 Part10

2021-06-22 05:01:36 字數 3847 閱讀 7222

'''

【程式81】

題目:809*??=800*??+9*??+1 其中??代表的兩位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??後的結果。

1.程式分析:

2.程式源**

這個程式實在是奇怪

0 = 1 :(

就寫個程式而已,不去追究了

'''a = 809

for i in range(10,100):

b = i * a + 1

if b >= 1000 and b <= 10000 and 8 * i < 100 and 9 * i >= 100:

print b,'/',i,' = 809 * ',i,' + ', b % i

'''

【程式82】

題目:八進位制轉換為十進位制

1.程式分析:           

2.程式源**:

'''if __name__ == '__main__':

n = 0

p = raw_input('input a octal number:\n')

for i in range(len(p)):

n = n * 8 + ord(p[i]) - ord('0')

print n

'''

【程式83】

題目:求0—7所能組成的奇數個數。

1.程式分析:

2.程式源**:

'''if __name__ == '__main__':

sum = 4

s = 4

for j in range(2,9):

print sum

if j <= 2:

s *= 7

else:

s *= 8

sum += s

print 'sum = %d' % sum

'''

【程式84】

題目:乙個偶數總能表示為兩個素數之和。

1.程式分析:

2.程式源**:

此**有問題,待修改

'''import math

if __name__ == '__main__':

a = int(raw_input('input an odd number:\n'))

d = 0

c = 2

for b in range(3,a / 2 + 1,2):

m = 0

for c in range(2,int(math.sqrt(b)) + 1):

if b % c == 0 :

m = c

break

if m > math.sqrt(b):

d = a - b

else:

break

for c in range(2,int(math.sqrt(d)) + 1):

if d % c == 0:

m = c

break

if m > math.sqrt(d):

print '%d = %d + %d' % (a,b,d)

'''

【程式85】

題目:判斷乙個素數能被幾個9整除

1.程式分析:

2.程式源**:

'''if __name__ == '__main__':

zi = int(raw_input('input a number:\n'))

n1 = 1

c9 = 1

m9 = 9

sum = 9

while n1 != 0:

if sum % zi == 0:

n1 = 0

else:

m9 *= 10

sum += m9

c9 += 1

print '%d can be divided by %d 9' % (sum,c9)

'''

【程式86】

題目:兩個字串連線程式

1.程式分析:

2.程式源**:

'''if __name__ == '__main__':

a = "acegikm"

b = "bdfhjlnpq"

# 連線字串

c = a + b

print c

'''

【程式87】

題目:回答結果(結構體變數傳遞)

1.程式分析:     

2.程式源**:

'''if __name__ == '__main__':

class student:

x = 0

c = 0

def f(stu):

stu.x = 20

stu.c = 'c'

a= student()

a.x = 3

a.c = 'a'

f(a)

print a.x,a.c

'''

【程式88】

題目:讀取7個數(1—50)的整數值,每讀取乙個值,程式列印出該值個數的*。

1.程式分析:

2.程式源**:

'''if __name__ == '__main__':

n = 1

while n <= 7:

a = int(raw_input('input a number:\n'))

while a < 1 or a > 50:

a = int(raw_input('input a number:\n'))

print a * '*'

n += 1

'''

【程式89】

題目:某個公司採用公用**傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下:

每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。

1.程式分析:

2.程式源**:

'''from sys import stdout

if __name__ == '__main__':

a = int(raw_input('input a number:\n'))

aa =

for i in range(4):

aa[i] += 5

aa[i] %= 10

for i in range(2):

aa[i],aa[3 - i] = aa[3 - i],aa[i]

for i in range(3,-1,-1):

stdout.write(aa[i])

'''

【程式90】

題目:專公升本一題,讀結果。

1.程式分析:

2.程式源**:

'''if __name__ == '__main__':

m = 5

a = [1,2,3,4,5]

i = 0

j = m - 1

while i < m:

a[i],a[j] = a[j],a[i]

print a

i += 1

j -= 1

for i in range(5):

print a[i]

c語言10個經典小程式

程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提1...

c語言10個經典小程式

程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 複製 如下 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時...

C語言常見函式重寫

面試題中經常出現一類考題就是,重新實現c語言中的庫函式,例如 strcpy,memcpy,stcmp.strcpy函式 char mystrcpy char des,const char src strlen函式 int mystrlen const char str int my strlen c...