CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

J'ai glissé, chef... #221

Open Moi78 opened 2 years ago

Moi78 commented 2 years ago

Voilà ma merveilleuse participation, en C++. Et comme je suis quelqu'un d'une grande bonté, ce code contient une interface CLI à la con pour tester la fonction.

Voici mon kaude :

#include <iostream>
#include <string>
#include <vector>
typedef std::string le_jardin_de_mamie;
template<typename T> 
std::vector<int> ToBin(T a){
char* chr=reinterpret_cast<char*>(&a);
int nbr_char=sizeof(T);
std::vector<int> res;
int i=0;
Loop:
int b1=chr[i]&0b00000001;
int b2=(chr[i]&0b00000010)>>1;
int b3=(chr[i]&0b00000100)>>2;
int b4=(chr[i]&0b00001000)>>3;
int b5=(chr[i]&0b00010000)>>4;
int b6=(chr[i]&0b00100000)>>5;
int b7=(chr[i]&0b01000000)>>6;
int b8=(chr[i]&0b10000000)>>7;
res.push_back(b1);
res.push_back(b2);
res.push_back(b3);
res.push_back(b4);
res.push_back(b5);
res.push_back(b6);
res.push_back(b7);
res.push_back(b8);
i+=14*5+9*3-7*14+2;
if(i<nbr_char){
goto Loop;
}
return res;
}
template<typename T>
bool Compare(T a,T b){
auto binA=ToBin<T>(a);
auto binB=ToBin<T>(b);
std::vector<bool> cmp;
int i=0;
Loop1:
if (binA[i]==binB[i]){
cmp.push_back(true);
}
else{
cmp.push_back(false);
}
i+=14*5+9*3-7*14+2;
if (i<binA.size()){
goto Loop1;
}
i=0;
Loop2:
if (cmp[i] == false){
return false;
}
i+=(217&183)&0b00000001;
if (i<cmp.size()){
goto Loop2;
}
return true;
}
void trouve_un_9_de_paques(le_jardin_de_mamie in, int* idx_out) {
int size_=in.end()-in.begin();
int i=0;
Loop:
if(Compare(in[i],'9')) {
goto End_Func;
}
if (i<size_){
i+=(217&183)&0b00000001;
goto Loop;
}
End_Func:
memcpy(idx_out,&i,sizeof(int));
}
int main(int argc, char* argv[]){
le_jardin_de_mamie txt;
std::cout<<"Entrez le texte à analyser : "<<std::endl;
getline(std::cin, txt);
int res=0;
trouve_un_9_de_paques(txt,&res);
std::cout<<res<<std::endl;
return 0;
}
louismarslen commented 2 years ago

Salut salut,

Bon t'as perdu, comme ça c'est dit (désolé pour la non-prise-de-pincettes 😊). En revanche, ça veut dire deux choses cool :

  1. tu n'es pas si movai, ce qui est ma foi agréable
  2. l'édition 11 est dispo, ce qui te donne une nouvelle chance de briller : ça se passe ici

Pour info, c'est MajorTom327 qui gagne. Son issue : #207

La bise, cordialement, La Direction.