打印" *"模式中最多n个术语及其反转

时间:2015-10-06 02:52:26

标签: c++ reverse

我有一个问题,就是要求我在代码中使用少于3个“cout”语句的for循环编写一个C ++程序来打印以下模式(忽略管道,星号不会出现它们):

| *

| ***

| *****

| *******

| *********

| *********

| *******

| *****

| ***

| *

这是我用于斐波那契发生器的代码,我觉得它可能类似。我可以打印" *"符号但不是水平线。我最需要帮助的是扭转输出。如果给定数字n,我希望系列在系列中输入n个数字,然后返回到0。

#include <iostream>
using namespace std;

int main()
{
    int y = 1, sum = 1, n;

    cout << "Enter the number of terms you want" << endl;
    cin >> n;

    cout << "First " << n << " terms are :- " << endl;

    for (int x = 0; x < n; x++) {

        cout << "\n" <<endl;


        for (int i = 0; i < sum; i++) {
            cout << "*" << endl;
        } 

        sum = y + 2;
        y = sum;
    }
}

1 个答案:

答案 0 :(得分:0)

这似乎是一个功课,所以我提供一些提示而不是完整的解决方案。

  • 要在一行中打印*,请注意<< endl将结束输出中的行,即打印换行符。 (顺便说一句<< "\n"也是如此。)并非每个cout语句都必须在其末尾有<< endl
  • 为了反转斐波那契数列,一旦你在变量sum中得到最后一个数字,就进行反向计算(即减法)。这个可以在第二组循环中完成,但是,因为你不应该经常使用cout语句,所以你最好通过使用一些重用相同的循环附加变量保持当前状态(即,如果您正在向上或向下计数)并使用if来决定要执行的计算。 (我读了这样的要求,只有用于打印模式的cout语句计数到“小于3”= 2)