Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Problema de algoritmo

Empaquei numa questão de um livro em que preciso escrever caracteres de estrela da direita para a esquerda, pular linha e aumentar a quantidade de estrelas a cada linha.

Eu só consegui imprimir da esquerda para a direita:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{

int z=1;
int a=1;
    for(int i =1;i<=10;i++)
    {
        for (int j=1;j<=i;j++)
        {

           cout<<'*';


            }


        cout<<endl;

    }








    return 0;
}

Se alguém puder me ajudar com isso, pode postar em portugol mesmo ou c ou c++, que são as linguagens que conheço. Talvez Javascript.

4 respostas

Fiz uma gambiarra, mas creio que não seja a solução mais elegante:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{

int z=1;
int a=10;
    for(int i =1;i<=10;i++)
    {
        cout<<setw(a);
        for (int j=1;j<=i;j++)
        {

           cout<<'*';


            }

        a--;
        cout<<endl;

    }








    return 0;
}

Sabe PHP? É assim:

for($i = 0; $i <= 10; $i++){
    echo str_repeat("*", $i).'<br>';    
}

Irá imprimir isso:

*
**
***
****
*****
******
*******
********
*********
**********

Tiago, nao entendo php, mas não era da esquerda pra a direita que queria, mas da direita para a esquerda.

solução!

Háaaa! Resolvi, modafoca!

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int x=16;
int z=8;
int a=13;
    for(int i =1;i<=10;i++)
    {

        for (int j=1;j<=i;j++)
        {

           cout<<"*";

        }

        cout<<setw(a--);
        for (int j=10;j>=i;j--)
        {


            cout<<"*";


        }



        cout<<setw(10);

        for(int j=1;j<=i;j++)
        {
            cout<<"*";


        }

        cout<<setw(z++);
        for(int j=10;j>=i;j--)
        {
            cout<<"*";


        }






        cout<<endl;

    }



    return 0;
}