''' 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不同样且无反复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成全部的排列后再去 掉不满足条件的排列。 2.程序源码: ''' for i in range(1,5): for j in range(1,5): for k in range(1,5): if( i != k ) and (i != j) and (j != k): print i,j,k
''' 【程序2】 题目:企业发放的奖金依据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源码: ''' bonus1 = 100000 * 0.1 bonus2 = bonus1 + 100000 * 0.500075 bonus4 = bonus2 + 200000 * 0.5 bonus6 = bonus4 + 200000 * 0.3 bonus10 = bonus6 + 400000 * 0.15 i = int(raw_input('input gain: ')) if i <= 100000: bonus = i * 0.1 elif i <= 200000: bonus = bonus1 + (i - 100000) * 0.075 elif i <= 400000: bonus = bonus2 + (i - 200000) * 0.05 elif i <= 600000: bonus = bonus4 + (i - 400000) * 0.03 elif i <= 1000000: bonus = bonus6 + (i - 600000) * 0.015 else: bonus = bonus10 + (i - 1000000) * 0.01 print 'bonus = ',bonus
''' 【程序3】 题目:一个整数,它加上100后是一个全然平方数,再加上168又是一个全然平方数,请问该数是多少? 1.程序分析:在10万以内推断,先将该数加上100后再开方,再将该数加上268后再开方,假设开方后 的结果满足例如以下条件,即是结果。请看详细分析: 2.程序源码: #include "math.h" main() { long int i,x,y,z; for (i=1;i<100000;i++) { x=sqrt(i+100); /*x为加上100后开方后的结果*/ y=sqrt(i+268); /*y为再加上168后开方后的结果*/ if(x*x==i+100&&y*y==i+268)/*假设一个数的平方根的平方等于该数,这说明此数是全然平方数*/ printf(" %ld ",i); } } ''' import math for i in range(10000): #转化为整型值 x = int(math.sqrt(i + 100)) y = int(math.sqrt(i + 268)) if(x * x == i + 100) and (y * y == i + 268): print i