弗洛伊德的三角形变化

时间:2013-11-30 18:26:33

标签: c++

所以我必须打印Floyd的三角形,但是这样:

7

1

2 3

4 5 6

7 * * * 

这是我的代码,如果还有剩余空间,我无法弄清楚如何在最后一行的末尾打印*

#include<iostream>
#include<cmath>
using namespace std;
int main ()
{
  int n;
  cin>>n;
  int br=1;

  for (int i=1;i<=n;i++)
  {
    for(int j=1;j<=i;j++)
    {
      if(br<=n)
        cout<<br<<" ";
      br++;
    }
    if(br<=n)
      cout<<endl;
  }
}    

2 个答案:

答案 0 :(得分:2)

以下是修改后的代码:

#include<iostream>
#include<cmath>
using namespace std;
int main ()
{
  int n, i, j;
  cin>>n;
  int br=1;

  for (i=1;i<=n;i++)
  {
    for(j=1;j<=i;j++)
    {
      if(br>n)
        break;
      cout<<br<<" ";
      br++;
    }
    if(br>n)
      break;
    cout<<endl;
  }
  for(int k = j; k <= i; k++)
  {
    cout<<"* ";
  }
}

答案 1 :(得分:0)

请注意,在第n行,有第n个数字。因此,对于每一行,您必须计算您已编写的数字。所以,当你写下你需要的数字时,你就写了k数。现在,你需要添加n-k星。