1073_杨辉三角形

来源:互联网 发布:人工智能与经济学 编辑:程序博客网 时间:2024/05/21 09:22
// 1073_杨辉三角形.cpp : 定义控制台应用程序的入口点。//题目1073:杨辉三角形//时间限制:1 秒内存限制:32 兆特殊判题:否提交:4381解决:1894//题目描述://输入n值,使用递归函数,求杨辉三角形中各个位置上的值。//输入://一个大于等于2的整型数n//输出://题目可能有多组不同的测试数据,对于每组输入数据,//按题目的要求输出相应输入n的杨辉三角形。//样例输入://6//样例输出://1 1//1 2 1//1 3 3 1//1 4 6 4 1//1 5 10 10 5 1#include "stdafx.h"#include "iostream"#include "stdio.h"#include "string.h"using namespace std;int a[110][110];int visit[110][110];int n;int Yanghui(int i,int j){    if(j==0 || i == j){        return 1;    }    else    for(int k = 1;k<i;k++){        if(!visit[i][k]){            if (!visit[i-1][k-1]){                a[i-1][k-1] = Yanghui(i-1,k-1);                visit[i-1][k-1] = 1;            }            if(!visit[i-1][k]){                a[i-1][k] = Yanghui(i-1,k);                visit[i-1][k-1] = 1;            }            a[i][k] = a[i-1][k-1]+a[i-1][k];            visit[i][k] = 1;        }    }}int main(){    while(scanf("%d",&n)!=EOF){        //memset(a,1,sizeof(a));        for (int i = 0;i<=n;i++)            for (int j =0;j<=n;j++)                a[i][j] = 1;        memset(visit,0,sizeof(visit));        Yanghui(n-1,1);        for(int i=1;i<n;i++){            int j;            for(j = 0;j<i;j++)                cout<<a[i][j]<<" ";            cout<<a[i][j]<<endl;        }    }    return 0;}/*1.memset()只能赋值0和-1;*/
0 0