Python重写C语言程序100例-Part10
Python重写C语言程序100例--Part10
''' 【程序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 = [] aa.append(a % 10) aa.append(a % 100 / 10) aa.append(a % 1000 / 100) aa.append(a / 1000) 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]