C++ vypis vsetkych 5cifernych cisiel – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++  vypis vsetkych 5cifernych cisiel – C / C++ – Fórum – Programujte.comC++ vypis vsetkych 5cifernych cisiel – C / C++ – Fórum – Programujte.com

 

Tomas
~ Anonymní uživatel
560 příspěvků
5. 4. 2012   #1
-
0
-

Cawko neviete mi niekto pomoct ako vytvorit program  v C++ ktory najde vsetky 5ciferne cisla, v kt sa cisla 2,3,4,5,6, budu vyskytovat prave raz napr. (23456,23465,23645....) ???? za odpovede Dakujem

Nahlásit jako SPAM
IP: 89.173.119.–
ingiraxo+15
Grafoman
5. 4. 2012   #2
-
0
-

možností máš plno... teď mě jen rychle napadá, že v prvním kroku to můžes vyfiltrovat, že to musí být v rozmezí 10000 a 99999.. v druhým kroku každé číslo převedeš na znaky a kontrolovat výskyt zmíněných čísel (resp. porovnávat znaky místo čísel)

nebo teď mě ještě napadlo, že dalsí filtr můžes nastavit, že číslo potom musí být dělitelné 5 nebo být sudé

opravdu na tohle je plno způsobů, stačí se trochu zamyslet a zkusit najít některý, který bude rychlý a efektivní.. to s tim porovnaní znaků je celkem brutální cesta, takže předtim je dobrý to co nejvíc vyfiltrovat a až nebude jak, tak zvolit porovnání znaků

Nahlásit jako SPAM
IP: 46.183.64.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Tomas
~ Anonymní uživatel
560 příspěvků
5. 4. 2012   #3
-
0
-

#2 ingiraxo
to ma itez napadlo len to nevom zapisat ten algoritmus do c++ buildera 6 

Nahlásit jako SPAM
IP: 89.173.119.–
ondra.holub+1
Stálý člen
5. 4. 2012   #4
-
0
-

   

#include <string>
#include <algorithm>
#include <iostream>

int main()
{
    std::string s = "23456";

    while (std::next_permutation(s.begin(), s.end()))
        std::cout << s << '\n';
}
Nahlásit jako SPAM
IP: 194.138.12.–
Tomas
~ Anonymní uživatel
560 příspěvků
5. 4. 2012   #5
-
0
-

#2 ingiraxo
to je mi jasne ze je vela sposobou lae nevim to nakodit do c++ :(

Nahlásit jako SPAM
IP: 89.173.119.–
Tomas
~ Anonymní uživatel
560 příspěvků
5. 4. 2012   #6
-
0
-

#4 ondra.holub
tento sposob viem ale cez konzolu to nemoze byt musi to byt cez GUI v cecku  a vypis cisel do Mema 

Nahlásit jako SPAM
IP: 89.173.119.–
ondra.holub+1
Stálý člen
5. 4. 2012   #7
-
0
-

#6 Tomas
> tento sposob viem ale cez konzolu to nemoze byt musi to byt cez GUI v cecku  a vypis cisel do Mema

Tak to místo do std::cout zapisuj do toho mema. A má to teda být v C nebo v C++? Zadání v dotazu bylo C++.

Nahlásit jako SPAM
IP: 194.138.12.–
Tomas
~ Anonymní uživatel
560 příspěvků
5. 4. 2012   #8
-
0
-

#7 ondra.holub
ma to byt v C++Builder 6 naprogramovane a tam mie tie prikazy neiktore ani nepozna napr to std 

Nahlásit jako SPAM
IP: 89.173.119.–
ondra.holub+1
Stálý člen
5. 4. 2012   #9
-
0
-

#8 Tomas
Opravdu to nezná standardní knihovnu C++? No, budu tomu věřit, Builder nepoužívám. V tom případě si vygoogli permutation algorithm a máš to.

Nahlásit jako SPAM
IP: 194.138.12.–
Tomas
~ Anonymní uživatel
560 příspěvků
5. 4. 2012   #10
-
0
-

#9 ondra.holub
velmo si my nepomohol vsetko co vygooglim mi nefunguje 

Nahlásit jako SPAM
IP: 89.173.119.–
ondra.holub+1
Stálý člen
5. 4. 2012   #11
-
0
-

google: hledám permutation algorithm

2. odkaz http://www.google.com/url?… obsahuje tento zdroják:

#include <stdio.h>


void print(const int *v, const int size)
{
  if (v != 0) {
    for (int i = 0; i < size; i++) {
      printf("%4d", v[i] );
    }
    printf("\n");
  }
} // print


void visit(int *Value, int N, int k)
{
  static level = -1;
  level = level+1; Value[k] = level;

  if (level == N)
    print(Value, N);
  else
    for (int i = 0; i < N; i++)
      if (Value[i] == 0)
        visit(Value, N, i);

  level = level-1; Value[k] = 0;
}


main()
{
  const int N = 4;
  int Value[N];
  for (int i = 0; i < N; i++) {
    Value[i] = 0;
  }
  visit(Value, N, 0);
}

Přeložím gcc -std=c99 x.c

Spustím.

Zobrazuje všechna 4-místná čísla z číslic 1, 2, 3, 4. Protože chci pětimístná, prodloužím pole ve funkci main na 5 prvků (řádek cca 33 změním na const int N = 5;) Teď to generuje 5-místná čísla z číslic 1-5. Protože to chci z číslic 2-6, tak upravím funkci print tak, aby tiskla vždy o 1 větší číslo (řádek 8, před pravou závorku přidej +1).

Nahlásit jako SPAM
IP: 194.138.12.–
Tomas
~ Anonymní uživatel
560 příspěvků
5. 4. 2012   #12
-
0
-

#11 ondra.holub
ide to len to okno konzoly hned zmizne :(

Nahlásit jako SPAM
IP: 89.173.119.–
ondra.holub+1
Stálý člen
5. 4. 2012   #13
-
0
-

#12 Tomas
Tak si to spusť přímo z cmd:

1. Win+R

2. napiš cmd a stiskni ENTER

3. přesuň se na disk a do adresáře, kde máš přeložený program, tedy např.

D:
cd \x\y\z

4. spusť svůj program

Nahlásit jako SPAM
IP: 194.138.12.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý