Advertisement
Guest User

Horner

a guest
Mar 24th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. string liczba;
  8.  
  9. int main()
  10. {
  11. cout <<"Wprowadz liczbe w systemie szesnastkowym:"<<endl;
  12. cin>>liczba;
  13. int dl=liczba.size();
  14. int x[dl];
  15. for(int i=0;i<dl;i++){
  16. switch (liczba[i]){
  17. case '0': x[i]=0; break;
  18. case '1': x[i]=1; break;
  19. case '2': x[i]=2; break;
  20. case '3': x[i]=3; break;
  21. case '4': x[i]=4; break;
  22. case '5': x[i]=5; break;
  23. case '6': x[i]=6; break;
  24. case '7': x[i]=7; break;
  25. case '8': x[i]=8; break;
  26. case '9': x[i]=9; break;
  27. case 'A': x[i]=10; break;
  28. case 'B': x[i]=11; break;
  29. case 'C': x[i]=12; break;
  30. case 'D': x[i]=13; break;
  31. case 'E': x[i]=14; break;
  32. case 'F': x[i]=15; break;
  33. case 'a': x[i]=10; break;
  34. case 'b': x[i]=11; break;
  35. case 'c': x[i]=12; break;
  36. case 'd': x[i]=13; break;
  37. case 'e': x[i]=14; break;
  38. case 'f': x[i]=15; break;
  39. default: cout<<"Zla liczba"; exit(0); break;
  40. }}
  41. double wynik=0;
  42. if(dl==1){
  43. wynik=x[0];
  44. }
  45. if(dl==2){
  46. wynik=x[0]*16+x[1];
  47. }
  48. if(dl>=3){
  49. int b=x[0]*16+x[1];
  50. int z=2;
  51. dl=dl-2;
  52. for(;0<dl;dl--){
  53. if(x[z]>15 || x[z]<0){
  54. x[z]=0;
  55. }
  56. wynik=b*16+x[z];
  57. b=wynik;
  58. z++;
  59. }
  60. }
  61.  
  62. cout<<"Dziesietna: "<<wynik<<endl;
  63.  
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement