这道题主要是输出格式的问题,每一行中两个*之间应该是没有空格的,然后注意1 *的情况就行
#include<iostream>
#include<cmath>using namespace std;
int main()
{
int m=0;
int j=0;
char s;
int n=1,x=0;
cin>>m>>s;
while(2*pow(n,2)-1<=m)
n++;
n--;
x=m-2*pow(n,2)+1;
for(int i=n,j;i>=1;i--)
{
j=0;
while(j<(n-i))
{
cout<<" ";
j++;
}
int nb=2*i-1,b=1;
while(b<=nb)
{
if(b!=nb)
cout<<s;
else
cout<<s;
b++;
}
if(n!=1)
cout<<endl;
}
for(int i=2,j;i<=n;i++)
{
j=0;
while(j<(n-i))
{
cout<<" ";
j++;
}
int nb=2*i-1,b=1;
while(b<=nb)
{
if(b!=nb)
cout<<s;
else
cout<<s;
b++;
}
cout<<endl;
}
if(n==1)
cout<<endl;
cout<<x;
return 0;
}