本题目要求你输出一个由数字组成的等腰三角形。
具体的步骤是:
先用 1,2,3,… 的自然数拼一个足够长的串。 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。 比如,当三角形高度是 8 时:
输入格式:
一个正整数 n,表示三角形的高度。 3<n<300
输出格式:
输出,用数字填充的等腰三角形。
为了便于测评,我们要求空格一律用 . 代替。
具体,可参照样例。
输入样例:
在这里给出一组输入。例如:
5
输出样例:
在这里给出相应的输出。例如:
....1 ...2.1 ..3...2 .4.....1 567891011
AC代码:
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
string s;
void shuzi(){ //先将1~1500的数存入字符串
for(int i=1;i<=1500;i++)
{
string s1="";
int a=i;
while(a)
{
s1+=(a%10+'0');
a/=10;
}
for(int k=s1.length()-1;k>=0;k--)
{
s+=s1[k];
}
}
}
int main()
{
shuzi();
int n;cin>>n;
int res=1;
int t=1;
for(int i=0;i<n-1;i++){
for(int j=1;j<=n-i-1;j++){ //输出每一行第一个数前的符号
cout<<".";
}
cout<<s[i];
if(i!=0){
for(int j=1;j<=2*i-1;j++){ //输出第一个数后面的符号的个数
cout<<".";
}
cout<<s[4*(n-1)-i]; //通过逆时针循环找规律
}
cout<<endl;
}
for(int i=0;i<=2*(n-1);i++){ //输出最后一行,从n开始
cout<<s[n+i-1];
}
return 0;
}