1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
denis-greek [22]
3 years ago
15

. Write a recursive function names factorial to compute the factorial of the parameter. Also write the main function, where you

ask the user to input a non-negative integer number. Then call the function factorial and display the result.
Computers and Technology
1 answer:
r-ruslan [8.4K]3 years ago
4 0

Answer:

Following are the code in c language

#include <stdio.h> // header file

long int factorial(int n); // declaration of factorial function

int main() // main function

{

   int n; // variable declaration

   printf("Enter a positive integer: ");

   scanf("%d", &n); // input number

   while(n<0) // checking the condition if number is negative

{

    printf("please enter a positive number:");

    scanf("%d", &n);

}

   printf("Factorial of %d = %ld", n, factorial(n)); // calling  factorial function

   return 0;

}

long int factorial(int n1) // recursive definition of factorial

{

   if (n1 >= 1)

       return n1*factorial(n1-1);

   else

       return 1;

}

Explanation:

In this program, it ask for a positive number input. if the value enter by user is negative then it again ask for positive input i.e positive number. Then it calls the recursive function of factorial. the recursive function factorial calculate the factorial recursively. suppose user input 4 then it goes to the if  part of program i.e return n*factorial(n-1); that means return 4*factorial(3) again recursive function call itself .this process repeated until it meets the base condition.  when a base condition meets, it return factorial of the given number.

output

Enter a positive integer: 5

factorial of 5=120

Enter a positive integer: -8

please enter a positive number:4

factorial of 4=24

You might be interested in
What is the purpose of a project overview?
andreyandreev [35.5K]

Answer:

option 3 should be the answer is this helps please give the brainliest award.

7 0
3 years ago
Read 2 more answers
Which expansion slot is best for high-end dedicated video cards?
Contact [7]

Solution:

It is done Motherboard.

The motherboard includes most of the slots that we'll run into these days. It's a little unusual in that we don't often see motherboards which have both PCI-Express slots and an AGP slot. The best slot to use for video cards is the PCI-Express x16 slot. The next best is the AGP slot. The next best is a PCI-Express x1 slot but video cards which fit that slot are very hard to find as of late 2006. Some low-budget computers are sold with integrated video and have neither PCI-Express x16 slot or an AGP slot.

3 0
3 years ago
Modify the DemoSalesperson application so each Salesperson has a successive ID number from 111 through 120 and a sales value tha
myrzilka [38]

Answer:

Here is the modified DemoSalesperson2

public class DemoSalesperson2{ // class DemoSalesperson2

public static void main(String[] args) { //start of main() function body

SalesPerson[] sp = new SalesPerson[10]; // creates an array of SalesPerson object named sp

int start_id =111; // assign 111 to starting id number

double start_sal=25000; //assign 25000 to starting salary means salary will start from amount 25000

 for (int i =0; i<sp.length; i++) { //loop iterates until the value of loop variable i remains less then length of the array object sp

  sp[i] =new SalesPerson(start_id+i,start_sal+5000*(i)); /*at each iteration  ID number from 111 through 120 and a sales value that ranges from $25,000 to $70,000, increasing by $5,000 for each successive is displayed using object array sp[] which calls the SalesPerson constructor to access id and sales */

 System.out.println(sp[i].getId()+"   "+sp[i].getAnnualSales() );  } } } /*uses object sp of class SalesPerson to access the methods getId which returns the id and getAnnualSales method which returns the annual sales, to display id and annual sales */

Explanation:

The question first requires a SalesPerson class with these requisites:

Class name: Salesperson.

Data fields for Salesperson: int ID number , double annual sales amount.

Methods: constructor SalesPerson() that requires values for both data fields, as well as get and set methods for each of the data fields.

So according to the complete question's requirement, I have implemented SalesPerson class:

public class SalesPerson {   // class name

//data members: integer type id variable and double type sales variable

   private int id;  

   private double sales;  

   public SalesPerson(int id_no, double annual_sales) {   //constructor that requires values for id and sales

       id = id_no;  

       sales = annual_sales;     }  

   public int getId() {   //accessor getId() method to get or access the value of id data field

       return id;     }  

   public void setId(int id_no) {   //mutator setId to set the value of id data field

       id = id_no;     }  

   public double getAnnualSales() {   //accessor getAnnualSales() method to get or access the value of sales data field

       return sales;     }  

   public void setAnnualSales(double annual_sales) { //mutator setAnnualSales to set the value of sales data field

       sales = annual_sales;     }  }

However you can use my DemoSalesperson2 application for your own SalesPerson class.

Now I will explain the working of for loop used in DemoSalesperson2

Iteration 1:

i=0

i<sp.length is true because length of sp[] is 10 so i<10

This means the body of for loop will execute.

The statement inside the body of for loop is :

 sp[i] =new SalesPerson(start_id+i,start_sal+5000*(i));

class SalesPerson constructor is used to access the data members of SalesPerson class

start_id = 111

start_sal=25000

start_id+i = 111 + 0 = 111

start_sal+5000*(i) = 25000 + 5000 (0) = 25000

The values 111 and 25000 are stored to sp[0] means at the first index of the sp array.

System.out.println(sp[i].getId()+"   "+sp[i].getAnnualSales() );  

This statement uses sp object to get access to the getId and getAnnualSales methods to print the id number and sales amount.

So the output at 1st iteration is:

111   25000.0

Iteration 1:

The value of i is incremented to 1 so now i = 1

i<sp.length is true because length of sp[] is 10 so i<10

This means the body of for loop will execute.

The statement inside the body of for loop is :

 sp[i] =new SalesPerson(start_id+i,start_sal+5000*(i));

class SalesPerson constructor is used to access the data members of SalesPerson class

start_id = 111

start_sal=25000

start_id+i = 111 + 1 = 112

start_sal+5000*(i) = 25000 + 5000 (1) = 25000 + 5000 = 30000

The values 111 and 25000 are stored to sp[1] means at the first index of the sp array.

System.out.println(sp[i].getId()+"   "+sp[i].getAnnualSales() );  

This statement uses sp object to get access to the getId and getAnnualSales methods to print the id number and sales amount.

So the output at 1st iteration is:

112   30000.0

The loop keeps iterating and the value of id is incremented by 1 and value of sales is increased by 5000 at every iteration.

This loop continues to execute until the value of i exceeds the length of sp array i.e. 10.

The values from iteration 1 to 8 following the above explanation are:

Iteration 1:

111    25000.0

Iteration 2:

112    30000.0

Iteration 3:

113    35000.0

Iteration 4:

114   40000.0  

Iteration 5:

115   45000.0  

Iteration 6:

116   50000.0                                                          

Iteration 7:

117   55000.0                                                                                                      

Iteration 8:                                                                                      

118   60000.0      

Iteration 9:                                                                                    

119   65000.0

Iteration 10:                                                                                    

120   70000.0

At iteration 11 the for loop body will not execute as value of i at 11th iteration is i = 10 and i<sp.length evaluates to false as i = sp.length because length of sp array is 10 and now the value of i is also 10. So the loop ends. Screenshot of the program and its output is attached.

4 0
3 years ago
Which osi/iso layer is responsible for determining the best route for data to be transferred?
RSB [31]
TCP/IP, (I believe) layer 3 is the only layer with a concept of networks and routing.
3 0
3 years ago
What makes smartphones so fragile?
In-s [12.5K]
Glass screen probably
7 0
3 years ago
Other questions:
  • There are two cons to an OLTP database. Which of the following are a solution of these cons?​
    9·1 answer
  • WILL GIVE BRAINLIEST!!!
    15·2 answers
  • On a Linux system, which command allows you to modify settings used by the built-in packet filtering firewall?
    15·1 answer
  • Why should ERP architecture include a discussion on organizational structure, business processes, and people, instead of just in
    5·1 answer
  • With ____________________, you can insert and remove a device while the computer is running.
    11·1 answer
  • Your friend is an intern at the local Department of Health and needs to prepare a report about the recent activity of the influe
    9·2 answers
  • What is a secondary storage medium that uses magnetic techniques to store and retrieve data on disks or tapes coated with magnet
    6·1 answer
  • Shelly recorded an audio composition for her presentation. Arrange the following steps that Shelly followed in the proper order.
    6·1 answer
  • For python how do I ask the user how many numbers they want to enter and then at the ending add those numbers up together?
    10·1 answer
  • When you're writing for mobile devices, use ________ to present the most important information first and provide successive laye
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!