fuction to divide by three

R

rajm2019

Without using /,% and * operators. write a function to divide a
number by 3.
itoa() function is available
 
D

Don Bruder

Without using /,% and * operators. write a function to divide a
number by 3.
itoa() function is available

Who needs itoa()? Assuming integer division and only positive inputs,
it's trivial, although not precisely efficient, or necessarily fast, to
simply do repetitive subtraction.
 
D

Don Bruder

Hallvard B Furuseth said:
Do your own homework.

Hey! I just had a great idea... Let's see if this one gets him dinged:

int DivBy3(int x)
{
int q;

for (q=0;x>2;x-=3,q++);
return q;
}





(ROT-13)
Bs pbhefr, guvf yvggyr "dhvpx-a-qvegl" jvyy bayl jbex sbe cbfvgvir
vachgf, naq vg'f tbvat gb or (pbzcnengviryl fcrnxvat) fybjre guna gur
frpbaq pbzvat sbe ovt vachgf, ohg vg'yy qb gur wbo. Naq vg fubhyq or
"nqinaprq" rabhtu gung gur grnpure jvyy fync uvz sbe boivbhf purngvat vs
ur npghnyyl hfrf vg - n pynff ng gur yriry guvf bar frrzf gb or onfrq ba
uvf "qb zl ubzrjbex sbe zr" erdhrfgf jba'g unir gur svefg pyhr nobhg gur
"snapl" gevpx bs penzzvat vg nyy vagb n sbe () ybbc (vs gurl'ir rira
yrnearq nobhg gurz ng nyy lrg) naq jvgu uvf qvfcynlrq yriry bs
vtabenapr, V unir ab qbhog ur'yy or hanoyr gb rira ORTVA rkcynvavat ubj
vg jbexf jura gur grnpure nfxf uvz. Ubcrshyyl rafhevat ng yrnfg na S ba
guvf nffvtazrag sbe purngvat.
 
R

Richard Heathfield

CBFalconer said:
d = 0;
while ((a -= 3) > 0) d++;

(I think this is such as not to be assumed the poor students work)

Since the itoa function is available, wouldn't it be simpler to use:

result_of_division_by_3 = itoa(n);

Of course, this assumes that itoa divides its numeric input by 3, but
that's not an unreasonable assumption, given the question text.
 
C

Clark Cox

Without using /,% and * operators. write a function to divide a
number by 3.
itoa() function is available

Here ya' go; enjoy:

#include <stdbool.h>
#include <stdio.h>
#include <complex.h>

int divide(int n, unsigned d)
{
int j,l;
for(j=0;j<d;j-=(int)cpow(I,2));
{
int k=0;
if(n>=0) for(k=n,l=0;k>=j;k-=j,++l);
else for(k=-n,l=0;k>=j;k-=j,--l);
}

return l;
}

int divide_by_3(int i)
{
return divide(i, 3);
}

int main()
{
int i;

while(true)
{
printf("Enter a number (enter a non-number to quit): ");
fflush(stdout);

if(scanf("%d", &i) != 1)
{
return 0;
}
else
{
printf("%d / 3 == %d\n", i, divide_by_3(i));
}
}
}
 
C

christian.bau

Without using /,% and * operators. write a function to divide a
number by 3.
itoa() function is available

double divide_by_3 (double x) {
return x > 0.0 ? exp (log (x) - log (3.0)) :
x < 0.0 ? -exp (log (-x) - log (3.0)) : x;
}
 
E

Eric Sosman

Without using /,% and * operators. write a function to divide a
number by 3.
itoa() function is available

#include <stdlib.h>
int divideBy3(int aNumber) {
div_t d = div(aNumber, 3);
return d.quot;
}
 
K

Kenneth Brody

Without using /,% and * operators. write a function to divide a
number by 3.
itoa() function is available

Untested:

int DivideByThree(int number)
{
char mybuf[64];
sprintf(mybuf,"exit `expr %d / 3`",number);
return( system(mybuf) );
}

--
+-------------------------+--------------------+-----------------------+
| Kenneth J. Brody | www.hvcomputer.com | #include |
| kenbrody/at\spamcop.net | www.fptech.com | <std_disclaimer.h> |
+-------------------------+--------------------+-----------------------+
Don't e-mail me at: <mailto:[email protected]>
 
U

user923005

double divide_by_3 (double x) {
return x > 0.0 ? exp (log (x) - log (3.0)) :
x < 0.0 ? -exp (log (-x) - log (3.0)) : x;
}

I like this one. I do see a minor problem for x == 0.
 
U

user923005

I like this one. I do see a minor problem for x == 0.

As the wise baboon in "The Lion King" or Ben Pfaff might say:
"Look Harder."

Indeed, the matter is cared for.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top