如何用Python实现杨辉三角和心

1. 如何实现杨辉三角

import copy
list=[]
newlist=[]
def Fibonacci(list,n):
    newlist.append(0)
    if n ==1:
        return [1]
    for i in range(n):
        if i==0 or i==n-1:
            newlist[i]=1
        else:
            newlist[i]=list[i-1]+list[i]
    return newlist
blanknum=68
for i in range(17):
    blanknum = blanknum - 4
    list=copy.deepcopy(Fibonacci(list,i+1))
    for i in range(blanknum/2):
        print " ",
    for i in list:
        print str(i).ljust(6),
    print ""

实现的效果如下:

看上去还是有点没对齐。。。

2. 如何实现心

def printlove(start,length,midnumber=0,flag=31):
    for i in range(31):
        if i<start or i>start+length-1 and i<15-(midnumber-1)/2 or i>15+(midnumber-1)/2 and i<31-start-length or i> 30-start or i==flag:
            print " ",
        else:
            print "*",
    print ""
for i in range(16):
    if i ==0:
            printlove(4,3)
    elif i==1:
            printlove(1,9)
    elif i>=2 and i<=5:
            printlove(0,i+10)
    elif i==6:
            printlove(1,7,7,15)
    elif i>=7 and i<=8:
            printlove(i-5,6,5-(i-7)*2)
    elif i==9:
            printlove(5,6,1)
    elif i==10:
            printlove(8,6,1)
    elif i==15:
            printlove(15,1,1)
    else:
            printlove(i-1,16-i,1)

实现的效果如下:

这样方式有点类似于穷举法,其实这个图案的原始实现算法是根据正弦函数来实现的~具体可参考网上其它语言的实现。

时间: 2024-09-29 16:03:00

如何用Python实现杨辉三角和心的相关文章

python 实现杨辉三角(依旧遗留问题)

1 #! usr/bin/env python3 2 #-*- coding :utf-8 -*- 3 print('杨辉三角的generator') 4 def triangles(): 5 6 N=[1] 7 while True : 8 yield N 9 N.append(0) 10 N = [N[i-1]+N[i] for i in range(len(N)) ] 11 12 triangles = triangles() 13 for j in range(10): 14 print

如何用C++打印杨辉三角

下面是杨辉三角的一部分,我们观察观察它有什么规律: 1 1      1 1     2     1 1     3     3     1 1     4     6     4     1 1     5    10    10    5    1 1     6    15    20   15    6    1 1     7     21    35   35   21   7    1 ................ 通过观察不难发现,三角的两边都是1,而且除边界外的每个数的值都

两个经典的小例子:杨辉三角和水仙花

package fllower;/** * 打印杨辉三角 * @author acer * */public class YangHui { public static void main(String[] args) { int[][] array = new int[10][]; //输出十行 for(int i = 0;i<10;i++){ //行是从0开始 列数加1 array[i] = new int[i+1]; //从第一行开始,依次给每行加不同的空格 for (int j = 9;

python打印杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 第n行的数字有n项. 第n行数字和为2n-1. 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数. 第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一. 每个数字等于上一行的左右两个数字之和.可用此性质写出整个杨辉三角.即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一.即 C(n+1,i)=C(n

java杨辉三角和空心菱形(二维数组篇)

一.杨辉三角 1 import java.util.Scanner; //导入包 2 public class Test7 { 3 public static void main(String[]args){ 4 5 Scanner row=new Scanner(System.in); //调用扫描器 6 int n = row.nextInt(); //定义类型 7 int [][] a=new int[n][n]; //定义二位数组 8 int i,j; //声明整型 9 10 for(i

python中杨辉三角的几种不同实现方式

计算杨辉三角的前n行:如下图所示 第n行有n项,n为正整数,第n行的数字之和为2n-1 方法一: 方法二: 方法三: : 方法四: 方法五: 方法六:

最标准的杨辉三角和一般的杨辉三角

1.最标准的杨辉三角 /* 编写程序打印杨辉三角形 1 变形 1 0 0 0 1 1 1 1 0 0 1 2 1 1 2 1 0 ...... 1 3 3 1 思路: 我们定义一个二维数组,所有元素先初始化为0 给数组的第1列和对角线元素赋值为1 其余元素a[i][j]=a[i-1][j-1]+a[i-1][j] 输出这个二维数组的下三角 */ //杨辉三角 如此标准 #include<stdio.h> #include<stdlib.h> #define N 5 int main

用python实现杨辉三角

def yanghui(lines): currentlst,lastlst,n=[],[],1 if lines<1: return while n<=lines: lastlst=currentlst currentlst=[] for i in range(n): if(i==0): currentlst.insert(0,1) elif(i==n-1): currentlst.insert(i,1) else: currentlst.insert(i,lastlst[i]+lastls

实现杨辉三角的10种解法--体验Python之美

本文收集了使用python实现杨辉三角的多种解法,主要为网上收集,也有一些是自己写的.从中可以体会python编写一个算法的不同思想和Python语法的特点. 杨辉三角是什么?还是度娘吧,看起来像是这样的:                          1                          1   1                           1   2   1                         1   3   3   1