Advertisement
GerexD

18hatekony 8-javitva,9,10

Mar 15th, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. int n,k,h=2;
  2. ifstream f("bac.txt");
  3. f>>n;
  4. for(int i=1;i<=n;i++)
  5. {
  6. f>>k;
  7. if(k<h) cout<<h<<" ";
  8. else {while(h<k)
  9. h=h*2;
  10. cout<<h<<" ";}
  11. }
  12. +++++++++++++++++++++
  13. #include <iostream>
  14. #include <fstream>
  15. /**
  16. 9. A BAC.IN szöveges állomány egyetlen sorában több természetes szám található egy-egy szóközzel elválasztva, a számok legfeljebb 6 számjegyűek. Határozzátok meg és írassátok ki a képernyőre
  17. a BAC.IN. állományban található legutolsó páratlan számot. Ha az állományban nincs páratlan szám a képernyőre a Nu există numere impare üzenet kerüljön
  18. Példa: ha a BAC.IN szövegállomány tartalma: 12 6 25 68 13 8 24 31 42 akkor a képernyőre kiírt érték a 31.
  19. a) Írjátok le saját szavaitokkal a felhasznált memória és a futási idő szempontjából hatékony algoritmust. Magyarázzátok meg, hogy miben rejlik a módszer hatékonysága. (4p.)
  20. b) Készítsétek el az algoritmusnak megfelelő C++ programot. (6p.)
  21. */
  22. using namespace std;
  23.  
  24. int main()
  25. {
  26. int n,e=2;
  27. ifstream f("bac.in");
  28. while(f>>n)
  29. {
  30. if(n%2==1) e=n;
  31. }
  32. if(e!=2) cout<<e;
  33. else cout<<"Nu exista numere impare";
  34. return 0;
  35. }
  36. ///hatékony, mert nem tárol, a beolvasás végére pedig megkapja az eredményt.
  37. +++++++++++++++++++++++++
  38. #include <iostream>
  39. #include <fstream>
  40. /**
  41. 10. A numere.txt szöveges állomány első sorában két, n és m (m≤n) legfeljebb 4 számjegyű szóközzel elválasztott természetes szám található, a következő sorban, pedig n darab,
  42. legfeljebb két számjegyű, egymástól egy-egy szóközzel elválasztott, szigorúan növekvő sorrendben levő természetes szám található.
  43. a) Írjatok a memória és a futási idő szempontjából hatékony C++ programot, amely kiolvassa az állományból az adatokat, és kiírja azt a legnagyobb összeget, amelyet m darab szám
  44. összegéből kapunk. (4p.)
  45. b) Írjátok le a saját szavaitokkal az általatok használt megoldási módszert és magyarázzátok meg, hogy miben rejlik a hatékonysága. (6p.)
  46. */
  47. using namespace std;
  48.  
  49. int main()
  50. {
  51. int a[100],n,m,o=0;
  52. ifstream f("numere.txt");
  53. f>>n>>m;
  54. for(int i=1;i<=n;i++)
  55. f>>a[i];
  56. int nn=n;
  57. while(m!=0)
  58. {
  59. o=o+a[nn];
  60. nn--;
  61. m--;
  62. }
  63. cout<<o;
  64. return 0;
  65. }
  66. ///hatékony, mert nem rendez, ezért hátulról kezdi és a csak m-ig halad
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement