打印三角形(找规律);
算法1
时间复杂度o(n)
参考文献
C++ 代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e3;
static string s;
static char a[N][N];//定义打印的数组
int main()
{
int n;
cin>>n;
for(int i=2;i<n*3;i++)//找到可能出现的数,并转换成<string>,方便处理
s+=to_string(i);
a[0][n-1]='1';//对初始赋值;
int j=0;
for(int i=1;i<n;i++)
{
a[i][n-1-i]=s[j];//找规律,发现在1到n-2行出只有两个值,并且一个递增,一个递减
a[i][n-1+i]=s[4*n-6-j];
j++;
}
string t=s.substr(j-1,2*n-1);//最后一串是相连的值,可以用substr进行提取;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n+i;j++)
{
if(a[i][j]>='0'&&a[i][j]<='9')//判断是字符则输出字符,反之输出.
cout<<a[i][j];
else
cout<<".";
}
cout<<endl;
}
cout<<t<<endl;
return 0;
}
写得太好了,感动哭了