Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sub1:
- 1.b
- 2.
- a) 66 77
- b) 7776
- c)
- citeste p,q
- x<-p
- cat timp x<=q executa
- y<-x
- c<-y%10
- cat timp y!=0 si y%10=c executa
- y<-y/10
- sfacattimp
- daca y=0 atunci
- scrie x,' '
- sfdaca
- x<x+1
- sfcattimp
- d)
- #include<iostream>
- using namespace std;
- int main()
- {
- int p, q;
- cin >> p >> q;
- int x = p;
- while (x <= q)
- {
- int y = x;
- int c = y % 10;
- while (y != 0 && c ==y % 10)
- y /= 10;
- if (y == 0)
- cout << x << " ";
- x++;
- }
- cout << endl << endl;
- system("pause");
- return 0;
- }
- sub2:
- 1. c
- 2. a
- 3. fd.x=f.x-1
- fd.y=f.y-2017
- 4. 0 1 1 1 0
- 1 0 0 0 0
- 1 0 0 0 1
- 1 0 0 0 0
- 0 0 1 0 0
- 5.
- #include<iostream>
- #include<string>
- using namespace std;
- int main()
- {
- char s[50];
- cin.get(s, 49);
- int count = 0;
- for (int i = 0; i <strlen(s); i++)
- {
- if (s[i] != ' ')
- count++;
- else
- {
- if (count % 2 == 0)
- {
- for (int j = i; j <= strlen(s) + count - 1; j++)
- s[j - count + 1] = s[j];
- s[i - count] = '*';
- i -= count - 1;
- }
- count = 0;
- }
- if(i==strlen(s)-1)
- if (count % 2 == 0 )
- {
- for (int j = i; j <= strlen(s) + count - 1; j++)
- s[j - count + 1] = s[j];
- s[strlen(s)-1] = '*';
- }
- }
- cout << s;
- cout << endl << endl;
- system("pause");
- return 0;
- }
- sub3:
- 1. c
- 2. 2 2 3 3 2 4 6
- 3.
- #include<iostream>
- #include<string>
- using namespace std;
- int nrDiv(int a, int b)
- {
- int count = 0;
- for (int i = a; i <= b; i++)
- {
- for (int d = 2; d <= i / 2; d++)
- if (d*(d + 1) == i)
- count++;
- }
- return count;
- }
- int main()
- {
- int a, b;
- cout << "a="; cin >> a;
- cout << "b="; cin >> b;
- cout << "sunt " << nrDiv(a, b) << " numere din intervalul [" << a << "," << b << "] ce pot fi scrise ca produs de doua numere consecutive";
- cout << endl << endl;
- system("pause");
- return 0;
- }
- 4.
- a)am descris functia data cu ajutorul unei functii recursive ce are ca parametrii n,si valoarea care este luata in cazul in care n-ul este egal cu 1
- -dupa care am luat un alt subprogram intreval avand ca param x si y pe care ii citim in interiorul lui;
- -apoi vom lua o variabila count care va numara cate numere din functie sunt mai mari ca x si mai mici ca y;
- -variabila aux calculeaza functia si avem variabila k=1 are ia exact primul element din functie si creste cu 1-u de fiecare data pana cand valoarea functiei este mai mare ca y;
- -dupa ce am determinat countu-ul vom initializa variabila k cu count si vom afisa elementul din functie incepand cu elementul k ,astfel reusind sa afisam in ordine descrescatoare si
- k-ul scade di fiecare data,asta cat timp k!=0
- -in momentul in care am afisat k elemente vom iesi din while si asta e cam programul
- b)
- #include<iostream>
- #include<fstream>
- using namespace std;
- int f(int n, int value)
- {
- if (n == 1)
- return value;
- else
- if (n % 2 == 0)
- return f(n - 1, value) + 1;
- else
- return 1 + 2 * f(n - 2, value);
- }
- void interval(int &x, int&y)
- {
- ofstream fout("bac.txt");
- cout << "x="; cin >> x;
- cout << "y="; cin >> y;
- int count=0;
- int k = 1;
- int aux = f(k, x);
- while(aux>=x && aux<=y)
- {
- count++;
- k++;
- aux = f(k, x);
- }
- k = count;
- while(k!=0)
- {
- fout << f(k, x) << " ";
- k--;
- }
- }
- int main()
- {
- int x, y;
- interval(x, y);
- cout << endl << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement