如何使用C ++打印此模式?

时间:2014-02-22 08:02:30

标签: c++

如何打印

*000
**00
***0
****

在这里,我们必须采取不。从用户输入的行然后打印模式。我能够打印*但无法打印0和

5 个答案:

答案 0 :(得分:2)

cout << "*000" << endl << "**00" << endl << "***0" << endl << "****" << endl;

因为很少有啤酒我会开始以同样愚蠢的答案回答愚蠢的问题。 :D技术面试好运。

答案 1 :(得分:0)

这类问题通常用于测试有效使用循环的技巧。

使用此:

    #include<iostream>
    using namespace std;

    int main()
    {
        int length; //no of lines
        cout<<"Enter the number of lines"<<endl;
        cin>>length;
        cout<<endl;
        for( int i = 0; i < length; i++)
        {
             for( int j=0;j<=i;j++ )
             {
                  cout<<"*";
             }
             for( int k=length-1; k>i;k-- )
             {
                  cout<<"0";
             }
             cout<<endl;
        }
        return 0;
    }

更改长度值以更改行数

答案 2 :(得分:0)

我猜你正在寻找类似的东西:

int lines = 4;   // lines you want to print
for (int i=1; i<=lines; i++)
{
    for (int j=0; j<i; j++)
        cout << "*";
    for (int j=0; j<lines-i; j++)
        cout << "0";
    cout << endl;
}

答案 3 :(得分:0)

使用printf比使用cout更容易。使用此:

for(int i = 1; i <= 4; ++i) {
    printf("%.*s%.*s\n", i, "****", 4 - i, "0000");
}

printf允许将宽度和精度字段指定为参数列表的一部分,而不像cout那样硬编码内联。有了这个提示,我会留给你弄清楚剩下的。如有任何问题,请在下面发表评论。 :)

答案 4 :(得分:0)

如何坚持使用0指数和明确定义的不变量?

#include <iostream>

using namespace std;

int main()
{

  int lines = 5;

  // we have written i rows thus far
  // write [i, lines) rows
  for (int i = 0; i < lines; ++i)
  {

    // we have written j stars thus far
    // write [j, i + 1) stars
    for (int j = 0; j < i + 1; ++j)
    {
      cout << "*";
    }

    // we have written k zeros thus far
    // write [k, lines - 1 - i) zeros
    for (int k = 0; k < lines - 1 - i; ++k)
    {
      cout << "0";
    }

    cout << endl;
  }

  return 0;
}