A community for students.
Here's the question you clicked on:
 0 viewing
bluebrandon
 4 years ago
Can someone help me write a nonrecursive version if this function in C?
http://db.tt/0NISjQXX
I just started learning C after Scheme and loops are still kind of confusing for me.
bluebrandon
 4 years ago
Can someone help me write a nonrecursive version if this function in C? http://db.tt/0NISjQXX I just started learning C after Scheme and loops are still kind of confusing for me.

This Question is Closed

DBhatta
 4 years ago
Best ResponseYou've already chosen the best response.0The code doesn't look like c. if it is which version or type is it?

rivermaker
 4 years ago
Best ResponseYou've already chosen the best response.2If you can describe the functionality I can help

rivermaker
 4 years ago
Best ResponseYou've already chosen the best response.2Ok is it computing \[x^{e} \mod m\] And you can write a recursive C version.

rivermaker
 4 years ago
Best ResponseYou've already chosen the best response.2int xsqrm( int x, int m) { return (x * x) % m int powermod2(int x, int e, int m) { if (e == 0) return 1; if (e % 2 == 0) return powermod2(xsqrm(x, m), e/2); return (x * powermod2(xsqrm(x, m), e/2)) % m ; }

bluebrandon
 4 years ago
Best ResponseYou've already chosen the best response.0for anyone curious this is the solution I came up with int powmod2(int x, int e, int m) { int y = 1; while (e!= 0) { if (e%2 == 0) { e = e/2; x = (x*x)%m; } else { e = (e1)/2; y = (x*y)%m; x = (x*x)%m; } } return y; } My problem was that I was missing a step in the odd case that I was able to introduce with the y variable. The original I needed to convert this was a recursive version written in scheme. Thanks for your help though!

rivermaker
 4 years ago
Best ResponseYou've already chosen the best response.2e = e/2 is enough in both cases; because integer division truncates. So you can remove the two statements inside the if and else and replace by e /= 2 in the while loop
Ask your own question
Sign UpFind more explanations on OpenStudy
Your question is ready. Sign up for free to start getting answers.
spraguer
(Moderator)
5
→ View Detailed Profile
is replying to Can someone tell me what button the professor is hitting...
23
 Teamwork 19 Teammate
 Problem Solving 19 Hero
 Engagement 19 Mad Hatter
 You have blocked this person.
 ✔ You're a fan Checking fan status...
Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.