Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- /* Ασκηση 2 ερασια 5 */
- int menu(int a,int b);
- void printMenu(void);
- void printPow(int a,int b);
- void printFactorial(int a,int b);
- void printCombinations(int a,int b);
- int pow(int a,int b);
- int factorial(int n);
- int combinations(int n,int k);
- int main() {
- int a,b;
- scanf("%d %d",&a,&b);
- printf("%d",menu(a,b));
- return 0;
- }
- int menu(int a,int b) {
- int choice;
- int attempts = 0;
- do {
- printf("\na=%d,b=%d\n",a,b);
- printMenu();
- scanf("%d",&choice);
- switch(choice) {
- case 1:
- printPow(a,b);
- break;
- case 2:
- printFactorial(a,b);
- break;
- case 3:
- printCombinations(a,b);
- }
- attempts++;
- }while(choice != 4);
- return attempts;
- }
- /* Εμφανιζει απλα το menu */
- void printMenu(void) {
- printf("Main menu\n");
- printf("1. Υπολογισμος α^β\n");
- printf("2. Υπολογισμος του α! και του β!\n");
- printf("3. Υπολογισμος των συνδιασμων α ανα β\n");
- printf("4. εξοδος\n\n");
- printf("Βαλε μια επιλογη: ");
- }
- int pow(int a,int b) {
- /* Αν β == 0 τοτε α^0 = 1 ετσι επιστρεφουμε 1 */
- if(b == 0) {
- return 1;
- }
- /* Αν το β == 1 τοτε επιστρεφουμε α^1 = α */
- if(b == 1) {
- return a;
- }
- int result;
- if(b & 1) {
- result = pow(a,(b-1)/2);
- return result * result * a;
- }
- result = pow(a,b/2);
- return result * result;
- }
- /* Υπολογιζει το ν! ##Προσοχη δεν δουλεβει για αρνητικους αριθμους και δεν κανω καποιο ελενχο τιμων## */
- int factorial(int n) {
- if(n < 2) {
- return 1;
- }
- return n*factorial(n-1);
- }
- int combinations(int n,int k) {
- return factorial(n) / (factorial(k) * factorial(n-k));
- }
- void printPow(int a,int b) {
- printf("%d^%d = %d\n",a,b,pow(a,b));
- }
- void printFactorial(int a,int b) {
- printf("%d! = %d\n",a,factorial(a));
- printf("%d! = %d\n\n",b,factorial(b));
- }
- void printCombinations(int a,int b) {
- printf("Το πληθος των συνδιασμων που μπορουν να γινουν %d ανα %d ειναι %d\n",a,b,combinations(a,b));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement