如何解决这个超硬恒星的创造问题

How to solve this super hard star-creatiing problem?

本文关键字:恒星 问题 创造 何解决 解决      更新时间:2023-10-16

我应该从第一行开始创建恒星,直到它们与数字相同。然后它们将从那里减少,直到剩下的那颗星只有一颗!

#include<iostream>

using namespace std;
int main()
{
float number;
int i, j, k, m, n, control1 = 0, control2 = 0;
cout << "Please enter a number: ";
cin >> number;

for(i = 0;i <= (number/2) + 2; ++i)
{
cout << "n";
for(j = 0;j < control1; j++) //tengoh
{
cout << "*";
}
control1 += 1;
}
control2 = control1;
for(m = 0;m < number; ++m)
{
cout << "n";
for(n = (control1 - 1);n < control2; n++)
{
cout << "*";
}
control2 += 1;
}
return 0;
}

以下是的解决方案

#include <iostream>
using namespace std;
int main()
{
float number;
cout << "Please enter a number: ";
cin >> number;
cout << endl;
for (int j = 0; j < number; ++j) {
for (int i = 0; i <= j; ++i) {
cout << '*';
}
cout << endl;
}
for (int j = 0; j < number - 1; j++) {
for (int i = number - 1; i > j; i--) {
cout << '*';
}
cout << endl;
}
return 0;
}

带输入10:的输出

Please enter a number:10
*
**
***
****
*****
******
*******
********
*********
**********
*********
********
*******
******
*****
****
***
**
*
#include <iostream>
using namespace std;
int main()
{
int number, i = 1;
std::cin >> number;
while (i <= number)
{
for (int j = 1; j <= i; j++)
std::cout<< "*";

std::cout << std::endl;
i++;
}
number -= 1;

while (number > 0)
{
for (int j = number; j > 0; j--)
std::cout << "*";

std::cout << std::endl;
number--;
}
return 0;
}