Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] N-elementowy ciąg 1223334444 itd. bez tablic

Ostatnio zmodyfikowano 2015-10-27 20:55
Autor Wiadomość
czarnymudzyn
Temat założony przez niniejszego użytkownika
[C++] N-elementowy ciąg 1223334444 itd. bez tablic
» 2015-10-24 13:29:26
Hej, mam takie zadanie:
Wypisz ciąg n-elementowy zawierający elementy 1,22,333,4444,55555 itd.
Niestety nie mam pojęcia co dalej zrobić, doszedłem do momentu gdzie program pokazuje mi 122, lecz nie wiem dlaczego nie chce działać dalej.
Nie mogę używać tablic

C/C++
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main()
{
    int i = 0, x = 0, w = 1, z = 1, q = 0, t = 0;
   
    cout << "Podaj jak dlugi ma byc ciag ";
    cin >> x;
   
    do
    {
        if( i < x )
        {
            cout << w;
            i++;
            w++;
            z++;
           
        }
        do
        {
           
            if( t < w )
            {
                cout << w;
                t++;
            }
        }
       
        while( i < x );
       
        break;
       
    }
    while( i < x );
   
    return 0;
}

Pozdrawiam
P-139099
Monika90
» 2015-10-24 14:25:51
Czym się kierowałeś wybierając taki nick? Wg mnie to narusza regulamin.
P-139102
Gibas11
» 2015-10-24 15:09:58
Mocno przekombinowałeś, wystarczy jedna zmienna (dajmy na to n, do pobrania ilości elementów), pętla for, wykonująca się n razy i druga pętla for zagnieżdżona w tej pierwszej wykonująca się tyle razy, ile razy wykonała się ta poprzednia + 1, rozwiązać to możesz np. tak:
C/C++
for( int i = 1; i <= n; i++ )
for( int j = 0; j < i; j++ )
     cout << i;

P-139103
czarnymudzyn
Temat założony przez niniejszego użytkownika
» 2015-10-24 17:07:58
Monika90- niczym, nie ma tutaj żadnych podtekstów rasistowskich. Używam go od 8 lat i nikt nigdy się nie przyczepił ;)
Gibas- dzięki wielkie, wszystko działa, rzeczywiście przekombinowałem :)
P-139111
czarnymudzyn
Temat założony przez niniejszego użytkownika
» 2015-10-27 19:44:35
Co zrobić by podając np 10 elementowy ciąg program wypisywał: 1223334444.?
Po prostu by elementów był tyle ile się poda, ale jego wyrazy wzrastały tak jak pomyśle Gibas11 .
P-139264
Glazus
» 2015-10-27 20:21:54
Tak mało elegancko:
C/C++
for( int i = 1; i <= n; i++ )
{
    for( int j = 0; j < i; j++ )
    {
        cout << i;
        count++;
        if( count >= n )
        {
            i = n + 1;
            break;
        }
    }
}
 
P-139267
Gibas11
» 2015-10-27 20:55:57
Rozumiem, że przy np. 11 elementach ma wyświetlić
12233344445
.

Jeżeli tak, ja zrobiłbym to tak:
C/C++
for( int i = 1, znaki = 0; znaki < n; i++ )
for( int j = 0; j < i and znaki < n; j++, znaki++ )
     cout << i;

Generalnie chodzi o to, by co krok 2. pętli podbijać jakąś zmienną, dajmy na to
znaki
 i kończyć obie pętle, gdy znaki będą równe n.
P-139269
« 1 »
  Strona 1 z 1