COULIX un pc pour les attirer ... | j ai finit mon prog sur les nombres palindrome, j en suis fier , j ai palier le problem des grans entierss en utilisant des strings, c certe plus lent mais sa marche .
le problem ce qu epour 196 par exemple qui reste une egnime mathematique, vu que son palindronme n est toujours pas trouver.
comment faire une sorte de chargement en cout << " "
genre une etoile qui tourne, mia je ne vois pas trop comment, si vous avez une idee
Code :
- #include <iostream.h>
- #include <string>
- #include <fstream>
- #include <cstdlib>
- bool palindrome (string a) {
- int len= a.length();
- for(int i=0; i<len;i++){
- if((a[i]*1)!=(a[len-i-1]*1)) { return false; }
- else continue;
- }
- return true;
- }
- string inversestr (string source,string target) {
- for(int i=0; i<(source.length());i++){
- target[i]=source[(source.length())-i-1]; }
- return target;
- }
- string process(string input) {
- string resultf,inverse;
- int tempa,tempinverse,tempresult;
- int temp=0;
- int len = input.length();
- inverse=input;
- string result(len,' ');
- resultf=result;
- inverse=inversestr(input,inverse);
- for(int i=0; i<len;i++) {
- //cout << "|" <<"\n";
- tempa = (input[i]*1 -48);
- tempinverse = (inverse[i]*1 -48);
- if (tempa+tempinverse+temp >9) {
- tempresult= (tempa+tempinverse+temp)%10;
- temp = 1;
- result[i]=(tempresult+48);
- }
- else {
- tempresult = (tempa+tempinverse+temp);
- result[i]=(tempresult+48);
- temp=0;
- }
- }
- if (temp==1){
- result = result + '1';
- resultf = resultf + ' ';
- }
- resultf =inversestr(result,resultf);
- return resultf;
- }
- int main()
- {
- string a,result,input,resultf;
- char quit;
- do{
- cout << "Enter number :\n";
- cin>>input ;
- int degree=0;
- do {
- //if(palindrome(input)==true) {break; }
- input=process(input);
- degree++;
- if(degree > 10000) {break; }
- }
- while(palindrome(input)!=true);
- cout << "result : " <<input << "\n";
- cout << "degree : " << degree << "\n";
- cout << "quit ? \n" << "\n";
- cin >> quit;
- }
- while (quit != 'y');
- }
|
|