Got Homework?
Connect with other students for help. It's a free community.
Here's the question you clicked on:
 0 viewing
bluebrandon
Group Title
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.
 2 years ago
 2 years ago
bluebrandon Group Title
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.
 2 years ago
 2 years ago

This Question is Closed

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

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

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

rivermaker Group TitleBest ResponseYou've already chosen the best response.2
int 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 ; }
 2 years ago

bluebrandon Group TitleBest ResponseYou've already chosen the best response.0
for 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!
 2 years ago

rivermaker Group TitleBest ResponseYou've already chosen the best response.2
e = 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
 2 years ago
See more questions >>>
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.