#题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
# 掉不满足条件的排列。
#2.程序源代码:
#一开始是不知道用什么好,后面练习了一些发现还可以用while循环1-4
s = [1,2,3,4]
su=0
for i in s:
for j in s:
for k in s:
if i!=k and i!=j and j!=k:
# print i,j,k
su = su+1
print su
#【程序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.程序源代码:
#if else 只能用三次让我为此大费脑筋,后来终于想到用while来圈定范围
i=
int(raw_input('plz enter fit:'))
bonus=0
bonus1=100000*0.1;bonus2=bonus1+100000*0.75
bonus4=bonus2+200000*0.5
bonus6=bonus4+200000*0.3
bonus10=bonus6+400000*0.15
if i<=100000:
bonus=i*0.1
elif i<=200000:
bonus=bonus1+(i-100000)*0.075
else:
bonus=bonus2+(i-200000)*0.05
while i>=600000:
if i<=600000:
bonus=bonus4+(i-400000)*0.03
elif i<=1000000:
bonus=bonus6+(i-600000)*0.015
else:
bonus=bonus10+(i-1000000)*0.01
break
print bonus
#【程序3】
#题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
# 的结果满足如下条件,即是结果。请看具体分析:
#2.程序源代码:
#这里的x和y一开始没有用int指定类型,导致很多数输出,今天才整理思路用int限定
import math
i=1
j=0
while i<100000:
i=i+1
x=int(math.sqrt(i+100))
y=int(math.sqrt(i+268))
if x*x == i+100 and y*y == i+268:
print i
#【程序4】
#题目:输入某年某月某日,判断这一天是这一年的第几天?
#1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
# 情况,闰年且输入月份大于3时需考虑多加一天。
#2.程序源代码:
#没有switch语句,就只好用上while了,在python中我把while当c中的for和switch用了。希望以后学多了能用更简单的方式代替
year =
int(raw_input("\nplease input year"))
month =
int(raw_input("\nplease input month"))
day =
int(raw_input("\nplease input day"))
su = 0
print month
while month>0:
print month-1
break
while month <= 3:
print while1
if month == 1:
su = 0
elif month == 2:
su = 31
else:
su = 59
break
while month > 3
and month <= 6:
if month == 4:
su = 90
elif month == 2:
su = 120
else:
su = 151
break
while month >= 7
and month <= 9:
if month == 7:
su = 181
elif month == 8:
su = 212
else:
su = 243
break
while month > 9
and month <= 12:
if month == 10:
su = 273
elif month == 11:
su = 304
else:
su = 334
break
su=su+day
print su
if year%400==0 or
year%4==0 and year%100!=0:
leap=1
else:
leap=0
if leap==1 and
month>2:
su = su+1
print su
#【程序5】
#题目:输入三个整数x,y,z,请把这三个数由小到大输出。
#1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
# 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
#2.程序源代码:
#没什么好说的
x =
int(raw_input("\nplease input x: "))
y =
int(raw_input("\nplease input y: "))
z =
int(raw_input("\nplease input z: "))
if x>y:
t=x
x=y
y=t
if x>z:
t=z
z=x
x=t
if y>z:
t=y
y=z
z=t
print "small to
big\n",x,y,z
#【程序6】
#题目:用*号输出字母C的图案。
#1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
#2.程序源代码:
#没什么好说的
print "Hello
C-world!\n"
print "
****\n"
print "
*\n"
print " *
\n"
print "
****\n"
#【程序7】
#题目:输出特殊图案,请在c环境中运行,看一看,Very
Beautiful!
#1.程序分析:字符共有256个。不同字符,图形不一样。
#2.程序源代码:
#使用了print的格式化输出
s =
"%c%c%c%c%c"%(219,176,176,176,219)
print s
s =
"%c%c%c%c%c"%(219,176,219,176,219)
print s
s =
"%c%c%c%c%c"%(219,176,219,219,219)
print s
#【程序8】
#题目:输出9*9口诀。
#1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
#2.程序源代码:
#while代替c中的for时,第二重循环中j要在第一重里定好初值
#print的换行问题在没网的时候考虑了很久,最后用手机搜得知只要在print语句后面加个逗号
i = 1
j = 0
res = 0
while i<10:
j=i
while j<10:
res = i*j
print i,'*',j,'=%3d'%(res),
j=j+1
i=i+1
print ' '
#【程序9】
#题目:要求输出国际象棋棋盘。
#1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
#2.程序源代码:
#同程序8
i=0
j=0
while i<8:
i=i+1
while j<8:
j=j+1
if (i+j)%2==0:
print 'b',
else:
print 'w',
j=0
print ' '
#【程序10】
#题目:打印楼梯,同时在楼梯上方打印两个笑脸。
#1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
#2.程序源代码:
#同程序8
i=1
while i<11:
i=i+1
j=1
while j<i:
j=j+1
print 'smile',
print ' '