Facebook
From Obese Hamerkop, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 235
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. int potegowanie(int x)
  7. {
  8.     int a=1;
  9.     for (int i=0;i<x;i++)
  10.         a*=10;
  11. return a;
  12. }
  13.  
  14. int dlugosc(int x)
  15. {
  16.     int a;
  17. for (int i=1;i<80;i++)
  18. {
  19.     a=i;
  20.  x=x/10;
  21.  if (x<1){
  22.         break;
  23.  }
  24. }
  25. return a;
  26. }
  27. int odejmowanie(int x, int b[])
  28. {
  29. int g;
  30. int c;
  31. for (int i=0;i<80;i++)
  32. {
  33.     c=(dlugosc(x)-1);
  34.     g=x/potegowanie(c);
  35.     b[i]=floor(g);
  36.     x-=(potegowanie(c)*b[i]);
  37.         if (x<=0)
  38.         break;
  39. }
  40. return 0;
  41. }
  42. int tablicanaliczbe(int a[],int x)
  43. {
  44.     int b;
  45.     int c=0;
  46.     for (int i=0;i<20;i++)
  47.     {
  48.         if ((i==0)&&(a[i]==0))
  49.         {
  50.          c=0;
  51.         }
  52.         else{
  53.         if (a[i]==0){
  54.         b=(dlugosc(x)-i-1);
  55.         c+=potegowanie(b);
  56.          if (b==0)
  57.             break;
  58.         }
  59.         else
  60.         {
  61.         b=(dlugosc(x)-i-1);
  62.         c+=(a[i]*potegowanie(b));
  63.         if (b==0)
  64.             break;
  65.         }
  66.         }
  67.  
  68.     }
  69. return c;
  70. }
  71. int main()
  72. {
  73.     int a;
  74.     int c[20];
  75.     int d[20];
  76.    cout<<"podaj ilosc liczb ktore chcesz sprawdzic: ";
  77.    cin >> a;
  78.    cout << endl;
  79.    int b[a];
  80.    for (int i=0;i<a;i++)
  81.     {
  82.     cout <<"podaj liczbe: ";
  83.     cin >>b[i];
  84.     cout<<endl;
  85.  
  86.     }
  87. int hejka;
  88. cout<<dlugosc(b[0])<<endl;
  89.  
  90. for (int i=0;i<a;i++)
  91. {
  92. for (int i=0;i<20;i++)
  93. {
  94.     c[i]=0;
  95.     d[i]=0;
  96. }
  97. odejmowanie(b[i],c);
  98.     int g;
  99.     double h;
  100.     g=0;
  101.     for (int j=(dlugosc(b[i])-1);j>=0;j--)
  102.     {
  103.         d[j]=c[g];
  104.         g+=1;
  105.     }
  106.     g=0;
  107.     h=0;
  108.      if ((float)b[i]/(float)tablicanaliczbe(d,b[i])!=1)
  109.          {
  110.                 h=1;
  111.          }
  112. cout<<endl<<endl;
  113. hejka=0;
  114. while(h==1)
  115. {
  116. odejmowanie(b[i],c);
  117. g=0;
  118. for (int j=(dlugosc(b[i])-1);j>=0;j--)
  119.     {
  120.         d[j]=c[g];
  121.         g+=1;
  122.     }
  123. hejka+=1;
  124. cout<<"tab c: ";
  125. for (int i=0;i<a;i++)
  126.     cout<< c[i]<<" ";
  127. cout <<endl;
  128. cout<<"tab d: ";
  129. for (int i=0;i<a;i++)
  130.     cout<<d[i]<<" ";
  131. cout <<endl<<"tablicanaliczbe1: "<<tablicanaliczbe(d,b[i])<<"   b[i] 1:  " <<b[i];
  132.  
  133. b[i]+=tablicanaliczbe(d,b[i]);
  134. for (int i=0;i<20;i++)
  135. {
  136.     c[i]=0;
  137.     d[i]=0;
  138. }
  139. odejmowanie(b[i],c);
  140. g=0;
  141. for (int j=(dlugosc(b[i])-1);j>=0;j--)
  142.     {
  143.         d[j]=c[g];
  144.         g+=1;
  145.     }
  146. cout <<endl<<"tablicanaliczbe2: "<<tablicanaliczbe(d,b[i])<<"   b[i] 2:  " <<b[i];
  147. if ((float)b[i]/(float)tablicanaliczbe(d,b[i])==1)
  148.          {
  149.                 h=0;
  150.          }
  151. for (int i=0;i<20;i++)
  152. {
  153.     c[i]=0;
  154.     d[i]=0;
  155. }
  156. }
  157. cout <<endl<<b[i]<<"      "<<hejka<<endl;
  158. }
  159.  
  160. return 0;
  161. }