2017Final 圆周率山

发布时间 2023-04-12 23:58:22作者: new菜鸟

为了参加学校的社团风采展,怡山小学数学组的同学们决定画一座圆周率山,以宣传圆周率。

已知圆周率为:3.1415926535 8979323846 2643383279 5028841971 6939937510

5820974944 5923078164 0628620899 8628034825 3421170679

8214808651 3282306647 0938446095 5058223172 5359408128

4811174502 8410270193 8521105559 6446229489 5493038196

输入格式:

输入山的高度,为一个不超过10的正整数。

输出格式:

以上尖下宽,左右对称的三角形形式,给出圆周率的前若干位(不含小数点)。注意:每行均以数字结尾,即数字右边无空格。

一、问题描述: 以圆周率的数为基准,输入需要的行数,做成一个金字塔形状。

二、设计思路:

       1.把上述圆周率存到一个数组里。

       2.输入一个不超过十的正整数。

       3.依次确定每一行前面所需要的空格数,并进行输出。

       4.依次确定每一行所需要的字符数,并进行输出。

 三、程序流程图

     

 

 四、代码实现

#include<iostream>
using namespace std;
int main(){
int n;
char a[] = "314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196";
//cout<<"请输入圆周率山的高度:";
cin>>n;
int sum = 0;
int num = 1;
for(int i = 0;i<n;i++){
for(int j = i+1;j<n;j++){
cout<<' ';//空格字符占位
}
for(int j = 0;j<num;j++){//本行字符数量
cout<<a[sum];
sum++;
}
num = num+2;//"山"的下一行比本行多两个字符
cout<<endl;//换行
}
return 0;
}