#打印杨辉三角形
按照输出格式打印杨辉三角形
输入格式:
输入一个小于30的正整数N。
输出格式:
输出杨辉三角的前N行,输出时,每个数字之后加一个空格。
输入样例:
5
输出样例:
1
1 1
1 2 1
1 3 3 1
参考答案
def tri(m,n):
if n==1 or m==n:
return 1;
else:
return tri(m-1,n)+tri(m-1,n-1);
a=int(input())
for i in range(1,a+1):
for j in range(1,i+1):
print(tri(i,j),end=" ");
print();
#回文判断
回文指正反读均相同的字符序列,例如“abba”和”abdba”均是回文,但“good”不是回文,判定给定字符串是否是回文。
输入格式:
输入一个字符串
输出格式:
如果是回文,输出“回文”;否则输出“不是回文”
输入样例:
aabcba
不是回文
答案
a=input();
if a==a[::-1]:
print("回文数");
else:
print("不是回文数");
#汉诺塔问题
定义一个函数,用递归的方式模拟汉诺塔问题,三个柱子,分别为A、B、C,其中A柱子上有N个盘子,从小到大编号为1到N,盘子大小不同。现在要将这N个盘子从A柱子移动到C柱子上,但移动的过程必须遵循以下规则:
1.每次只能移动一个盘子;
2.盘子只能放在空柱子或者比自己大的盘子上面;
3.每次只能移动最上面的盘子。
输入格式
3
输出格式
step 1:Move Move disk from A to C
step 2:Move Move disk from A to B
step 3:Move Move disk from C to B
step 4:Move Move disk from A to C
step 5:Move Move disk from B to A
step 6:Move Move disk from B to C
step 7:Move Move disk from A to C
参考答案
count=0;
def hanoi(n,x,y,z):
global count;
if n==1:
count+=1;
move(count,x,z);
else:
hanoi(n-1,x,z,y);
count+=1;
move(count,x,z);
hanoi(n-1,y,x,z);
def move(n,x,y):
print("step %d:Move Move disk from %c to %c"%(count,x,y));
m=int(input());
hanoi(m,"A","B","C");