如何打印
*000
**00
***0
****
在这里,我们必须采取不。从用户输入的行然后打印模式。我能够打印*但无法打印0和
答案 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;
}