| Advertentie | |
|
|
|
|
|
|
|
keej, ik heb effe zitten puzzelen, en dit heb ik nu
Code:
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
int main()
{
cout <<"De eerste 200 getallen die deelbaar zijn door 78\n";
unsigned long counter=1;
unsigned long buffer[200];
char charbuffer[50];
int i=0;
while(i<200)
{
if(counter%78 == 0)
{
itoa(counter, charbuffer, 10);
string string_uit_buffer(charbuffer);
if((string_uit_buffer.find("6",0) == string::npos) ||
(string_uit_buffer.find("9",0) == string::npos))
{
buffer[i]=counter;
i++;
}
}
counter++;
}
cout<<i<<endl<<endl;
for(i=0; i<200; i++)
{
cout<<buffer[i]<<" ";
}
cout<<endl;
system("pause");
return 0;
}
met syntax highlithing http://www.rafb.net/paste/results/v2946342.html maar dit werkt niet..... terwijl het andersom wel werkt, als ik string_uit_buffer.find("6",0) == string: pos) verander in string_uit_buffer.find("6",0) != string: pos) Dan krijg ik juist alle getallen MET een 6 of 9
Laatst gewijzigd op 20-12-2003 om 16:36. |
|
|
|
||
|
Citaat:
![]()
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
||
|
|
|
|
ik gebruik er zelf altijd een zelfgemaakte functie voor maar ik weet niet of het de snelste manier is.. hij werkt iig erg goed!
Code:
#define SIX 6
#define NINE 9
typedef enum {SIXORNINE_SIX, SIXORNINE_NINE, SIXORNINE_OTHER} SIXORNINE;
SIXORNINE investigateSixOrNineValuedInt(int iValue) {
int iIterator, iCounter = 0;
SIXORNINE returnValue;
assert(SIX!=NINE);
for(iIterator=0;iIterator<iValue;iIterator++) {
iCounter++;
if(iCounter>NINE) break;
}
if ((iCounter!=SIX)&&(iCounter!=NINE)) {
returnValue=SIXORNINE_OTHER;
}
else {
returnValue=(iCounter==SIX?SIXORNINE_SIX:SIXORNINE_NINE);
}
return returnValue;
}
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
|
|
|
||
|
Citaat:
bij die code van mij is de performance veel beter
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
||
|
|
||
|
Citaat:
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
||
|
|
||
|
Citaat:
en dan doet het er nog niet eens toe wie er gelijk heeft en wie niet
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
||
|
|
|
|
hmm ok ik zie het al
ik dacht dat hendre een geintje maakte.. in de topic staat "Zit er een 6 of 9 in een int" en ik dacht dus dat hij bedoelde hoe je kan kijken of een int een 6 of een 9 is nu begrijp ik het.. hij wil weten of het teken '6' of '9' in de string representatie van een int zit
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
|
|
|
|
|
|
Ik heb het dankzij Screaming Slave opgelost. Dit is mijn oplossing:
Code:
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
int main()
{
cout <<"De eerste 200 getallen die deelbaar zijn door 78\n";
unsigned long counter=1;
unsigned long buffer[200];
char charbuffer[50];
int i=0;
while(i<200)
{
if(counter%78 == 0)
{
itoa(counter, charbuffer, 10);
string string_uit_buffer(charbuffer);
if((string_uit_buffer.find("6",0) == string::npos) &&
(string_uit_buffer.find("9",0) == string::npos))
{
buffer[i]=counter;
i++;
}
}
counter++;
}
cout<<i<<endl<<endl;
for(i=0; i<200; i++)
{
cout<<buffer[i]<<" ";
}
cout<<endl;
system("pause");
return 0;
}
|
|
| Advertentie |
|
|
|
|
|
Verwijderd
|
kan het hele opzoeken niet sneller dmv een bitand?
Code:
int zoekgetal = 9, maal = 10, getal = 9;
while( zoekgetal & getal != zoekgetal && zoekgetal <= getal)
{
zoekgetal *= maal;
}
if( zoekgetal <= getal )
{
// blaat... een 9 gevonden
}
else
{
//blaat... geen 9 gevonden
}
[edit] idd... ik heb het fout ![]() [/edit] Laatst gewijzigd op 22-12-2003 om 09:07. |
|
|
||
|
Citaat:
![]() Maar ja.....je werkt met integers. Dan kan je net zo goed gewoon effe 2 if statement maken die kijkt of het tussen de 5 en de 7 ligt, of tussen de 8 en de 10.
__________________
A lie gets halfway around the world before the truth has a chance to get its pants on.
|
||
|
|
||
Verwijderd
|
Citaat:
9 kan 90 kan ook 900 kan ook maar 198 werkt niet. en er zit toch echt een 9 in... |
|
|
|
||
|
Citaat:
__________________
A lie gets halfway around the world before the truth has a chance to get its pants on.
|
||
|
|
||
Verwijderd
|
Citaat:
![]() binair, of liever hexadecimaal, gaat tot 16 decimaal. Dan zou je bij 19 decimaal al in de problemen komen. Code:
9d = 9h = 0000 1001b 19d = 13h = 0001 0011b |
|
|
|
|
|
voor datgene dat hendre wil maken, maakt het niet uit of de uitvoering nou 1 of 2 milliseconden duurt... en eerst converteren naar een string is wel veel leesbaarder
ik begrijp alleen niet zo waarom hendre's probleem zo ingewikkeld moet worden opgelost... moet het perse met dit algoritme voor school ofzo? anders kan je toch veel beter dit doen als je de eerste 200 getallen deelbaar door 78 wil weergeven? Code:
#include <iostream>
int main(int argc, char *argv[])
{
int I;
cout << "De eerste 200 getallen die deelbaar zijn door 78" >> endl;
for (I = 0; I < 200; I++)
{
cout << I * 78 << " ";
}
cout << endl;
return 0;
}
dan zal ik me er voor de rest van de topic buiten houden
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
Laatst gewijzigd op 22-12-2003 om 13:58. |
|
|
|
|
|
ja de eerste 200 getallen die deelbaar zijn door 78 is geen probleem, maar het probleem ligt meer in dat de getallen géén 6 óf 9 mogen bevatten vanwege een engels grapje
Why is the 6 afraid of the 7?
Spoiler
Ik heb nu trouwens iets uitdagenders. Dit is de opdr8 waar ik al een 2 dagen mee aan het puzzelen ben. De Romeinen hadden een spelletje met muntjes, te weten sestertii. Er staan een heleboel lege potjes op een rij en de eerste Romein die langskomt gooit in elk potje een sestertius. Daarna komt de tweede Romein die haalt uit alle even potjes het muntje. De potjes zijn genummerd1 van 1 t/m n, waarbij n het laatste potje is. De nummering is opeenvolgend. Dan komt de 3e romein en gaat alle potjes die een veelvoud van drie zijn na, en als er een muntje inligt dan pakt hij dat, en als er geen muntje inligt dan doet hij er een in. Dus hij pakt het muntje uit potje 3 en doet dat in potje 6. Daarna pakt hij het muntje uit potje 9 en doet dat in potje 12, enzovoort. De vierde Romein doet hetzelfde voor alle potjes met als nummer een viervoud. Nadat er n Romeinen zijn geweest, in hoeveel potjes ligt er dan een muntje? Kan je ook een rij maken van X-en en O-en waarbij een X staat voor wel een munt, en O voor geen munt? Het probleem is hoe maak ik een 2de array met een dynamische groote. Een gewone array lukt wel, maar bij 2d krijg ik een error van mn compiler. voor een gewone array met dynamische grootte doe ik Code:
int * dArray; dArray = new int [size]; Code:
int * dArray; dArray = new int [size1][size2]; Laatst gewijzigd op 22-12-2003 om 16:18. |
|
|
|
||
|
Citaat:
En malloc, hmm het is nog een C-style (tog) maar ik zal er effe naar kijken, maar geheugentoewijzen en pointers enzo dat is niet mn sterkste punt... ![]() Ok, ik heb effe malloc bekeken. Stel ik wil een 2d array maken met malloc. Werkt dat dan ong zo Code:
int * dArray; dArray = (int*)malloc((nP*sizeof(int))*(nR*sizeof(int))); Laatst gewijzigd op 22-12-2003 om 20:57. |
||
|
|
||
Verwijderd
|
Citaat:
|
|
|
|
||
Verwijderd
|
Citaat:
Trouwens, hier kun je het programmatje dat ik net heb gemaakt nav jou verhaaltje van de Romeinen bekijken, geschreven in FoxPro. Als het goed is heb je niet de 7 MB aan dll's nodig die FoxPro zo graag wilt. Maar dat weet ik niet. Laat het even weten
|
|
|
|
||
|
Citaat:
dll's heb je wel nodig
Laatst gewijzigd op 22-12-2003 om 21:01. |
||
|
|
||
Verwijderd
|
Citaat:
![]() http://www.divinity-universe.nl/downloads/romein.prg Nu heb ik wel jouw huiswerk lopen maken.. maarja. Voor één keer maakt mij dat niet zoveel uit
|
|
|
|
||
|
Citaat:
|
||
|
|
||
|
Citaat:
|
||
|
|
||
Verwijderd
|
Citaat:
In de help staat dat elke exe 2 support dll's nodig heeft, te weten Vfp8r.dll en Vfp8renu.dll. En laten deze 2 samen nu toevallig 5.19 MB zijn. (ok, 7 MB was wat overdreven...) |
|
![]() |
|
|