Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions Icon

Related questions

Question
**Write the definition of a recursive function**

```c
int simpleSqrt(int n)
```

The function returns the integer square root of `n`, meaning the biggest integer whose square is less than or equal to `n`. You may assume that the function is always called with a nonnegative value for `n`.

Use the following algorithm:

- If `n` is 0 then return 0.

- Otherwise, call the function recursively with `n-1` as the argument to get a number `t`. Check whether or not `t+1` squared is strictly greater than `n`. Based on that test, return the correct result.

For example, a call to `simpleSqrt(8)` would recursively call `simpleSqrt(7)` and get back 2 as the answer. Then we would square (2+1) = 3 to get 9. Since 9 is bigger than 8, we know that 3 is too big, so return 2 in this case.

On the other hand, a call to `simpleSqrt(9)` would recursively call `simpleSqrt(8)` and get back 2 as the answer. Again we would square (2+1) = 3 to get back 9. So 3 is the correct return value in this case.
expand button
Transcribed Image Text:**Write the definition of a recursive function** ```c int simpleSqrt(int n) ``` The function returns the integer square root of `n`, meaning the biggest integer whose square is less than or equal to `n`. You may assume that the function is always called with a nonnegative value for `n`. Use the following algorithm: - If `n` is 0 then return 0. - Otherwise, call the function recursively with `n-1` as the argument to get a number `t`. Check whether or not `t+1` squared is strictly greater than `n`. Based on that test, return the correct result. For example, a call to `simpleSqrt(8)` would recursively call `simpleSqrt(7)` and get back 2 as the answer. Then we would square (2+1) = 3 to get 9. Since 9 is bigger than 8, we know that 3 is too big, so return 2 in this case. On the other hand, a call to `simpleSqrt(9)` would recursively call `simpleSqrt(8)` and get back 2 as the answer. Again we would square (2+1) = 3 to get back 9. So 3 is the correct return value in this case.
Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Similar questions
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY