当前位置:网站首页>杨辉三角的各种输出:
杨辉三角的各种输出:
2022-07-29 21:22:00 【疯疯癫癫才自由】
杨辉三角的各种输出:
1)两个一维数组轮换进行输出:
/**
1)两个一维数组轮换进行输出:
*/
#include <iostream>
using namespace std;
int main() //两个一维数组轮换进行输出
{
int n;
cin >> n;
int a[n],b[n];
b[0]=b[1]=1;
printf("%-5d\n",b[0]);
printf("%-5d%-5d\n",b[0],b[1]);
for(int i=2;i<n;++i)
{
a[0]=a[i]=1;
b[0]=b[i]=1;
for(int j=1;j<=i-1;++j)
{
if(i&1)
b[j]=a[j]+a[j-1];
else
a[j]=b[j]+b[j-1];
}
if(i&1)
for(int j=0;j<=i;++j)
printf("%-5d",b[j]);
else
for(int j=0;j<=i;++j)
printf("%-5d",a[j]);
printf("\n");
}
return 0;
}
2)一个一维数组反推输出:
/**
2)一个一维数组反推输出:
*/
/**
#include <iostream>
using namespace std;
int main() //一个一维数组反推输出
{
int n;
cin >> n;
int a[n];
a[0]=a[1]=1;
printf("%-5d\n",a[0]);
printf("%-5d%-5d\n",a[0],a[1]);
for(int i=2;i<n;++i)
{
a[0]=a[i]=1;
for(int j=i-1;j>0;--j)
{
a[j]=a[j]+a[j-1];
}
for(int j=0;j<=i;++j)
printf("%-5d",a[j]);
printf("\n");
}
return 0;
}
*/
3)一个一维数组正推输出:
/**
3)一个一维数组正推输出:
*/
/**
#include <iostream>
using namespace std;
int main() //一个一维数组正推输出
{
int n;
cin >> n;
int a[n];
a[0]=a[1]=1;
printf("%-5d\n",a[0]);
printf("%-5d%-5d\n",a[0],a[1]);
for(int i=2;i<n;++i)
{
a[0]=a[i]=1;
int last=1,temp; //temp保存将要被覆盖的值
for(int j=1;j<i;++j)
{
temp=a[j];
a[j]=a[j]+last;
last=temp; //last保存j-1号元素的值
}
for(int j=0;j<=i;++j)
printf("%-5d",a[j]);
printf("\n");
}
return 0;
}
*/
/**
4)要求:每行的数据居中对齐输出,使得每一对角线上的元素都是一条直线
anaysis: 由于要使得每一对角线上的元素都是一条直线,那么需要找出每一个
元素所需要的字长宽度,如何找呢?想必肯定是由最大的数据决定,
我们把每个数字放在等宽的格子里面,
格子宽度=最大数字宽度+1||2;
行前留白:(line_count-line_no)*unit_width/2;
格子内部:数据居中,
左边留白:(unit_width-data_width)/2;
右边留白:(unit_width-左边留白-data_width);
*/
/**
4)要求:每行的数据居中对齐输出,使得每一对角线上的元素都是一条直线
anaysis: 由于要使得每一对角线上的元素都是一条直线,那么需要找出每一个
元素所需要的字长宽度,如何找呢?想必肯定是由最大的数据决定,
我们把每个数字放在等宽的格子里面,
格子宽度=最大数字宽度+1||2;
行前留白:(line_count-line_no)*unit_width/2;
格子内部:数据居中,
左边留白:(unit_width-data_width)/2;
右边留白:(unit_width-左边留白-data_width);
*/
#include <iostream>
using namespace std;
typedef long long LL;
void output(int *a,int line_no,int data_size);
LL C(int n,int m); //计算杨辉三角中最大的值
int unit_width , line_count;
int main() //一个一维数组反推输出
{
cin >> line_count;
LL temp = C(line_count-1,line_count/2); //计算杨辉三角中最大的值
cout << temp << endl; //其中装数的格子能装下最大值即一定能装下其他数字
while(temp!=0)
{
++unit_width;
temp/=10;
} //计算最大数的位数
if(unit_width&1)
++unit_width; //保证unit_width是偶数
else
unit_width+=2;
cout << "unit_width: " << unit_width << endl;
int a[line_count];
a[0]=1;
cout << "line_count: " << line_count << endl;
output(a,1,1);
for(int i=1;i<line_count;++i)
{
a[0]=a[i]=1;
for(int j=i-1;j>0;--j)
{
a[j]=a[j]+a[j-1];
}
output(a,i+1,i+1);
}
return 0;
}
void output(int *a,int line_no,int data_size)
{
// cout << "line_count : " << line_count << endl;
// cout << "line_no : " << line_no << endl;
// cout << "unit_width : " << unit_width << endl;
// cout << "(line_count-line_no)*unit_width/2: " <<(line_count-line_no)*unit_width/2 << endl;
for(int i=1;i<=(line_count-line_no)*unit_width/2;++i)
cout << ' ';
for(int i=0;i<data_size;++i)
{
int data_width=0,temp=a[i];
while(temp!=0)
{
++data_width;
temp/=10;
}
int left_space=(unit_width-data_width)/2;
for(int j=0;j<left_space;++j)
cout << ' ';
cout << a[i];
int right_space=unit_width-left_space-data_width;
for(int j=0;j<right_space;++j)
cout << ' ';
}
cout << endl;
}
LL C(int n,int m)
{
LL val=1;
for(int i=1;i<=m;++i)
{
val*=(n-m+i);
val/=i;
}
return val;
}
边栏推荐
猜你喜欢
爽朗的一天
三品牌下半年将带来多款新品,东风日产将迎来“产品大潮”
applet preview pdf
The sword refers to Offer II 097. Number of subsequences
数字孪生万物可视 | 联接现实世界与数字空间
SwiftUI CoreData 教程之如何加速搜索速度
南华早报 | 助力亚洲最具公信力报章实现AD域自动化管理
An article to understand service governance in distributed development
网络通信编程基础,BIO,NIO
【Verilog 设计】Verilog 实现偶数、奇数分频和任意小数分频
随机推荐
GBASE 8s 通过light scan优化查询性能
C语言操作符详解(1)
网络通信编程基础,BIO,NIO
applet preview pdf
5V升压充电8.4V芯片
刘畊宏男孩女孩看过来!运动数据分析挖掘!(附全套代码和数据集)
小程序微信定位不准
WeChat Mini Program 31 Subcontracting Mechanism
linux使用脚本安装redis
基于PaddleSpeech搭建个人语音听写服务
iNFTnews | 福布斯的Web3探索
GBASE 8s 数据库的大对象和日志备份
24小时伦敦金走势图分析
Official announcement!Suzhou Wujiang Development Zone launches electronic labor contract platform
GBASE 8s 如何并行执行update statistics
In 2022, you still can't "low code"?Data science can also play with Low-Code!
[Point Cloud] M3DeTR: Multi-representation, Multi-scale, Mutual-relation 3D Object Detection with Transformers
笔记:fgets函数详解
转:idea中language level设置
阿里 P8 爆出的这份大厂面试指南,看完工资暴涨 30k!