递归函数C乘4的问题



我应该用C为学校写一个程序,在那里我乘以4,但我无法让它工作。当我键入2时,我得到20,当我键入3时,它是84,当我输入4时它是340,以此类推,为什么?

#include <stdio.h>
int multi(int i)
{
if (i == 1) {
return 4; 
} 
if (i == 0) {
return 0;
}
if (i > 1) {
return (multi(i-1)*4)+4;
}
}
int main()
{
int i;
printf("type a numer for multiplication by 4n");
scanf("%d",&i);
printf("%d * 4 is %dn",i, multi(i));
}

X乘以Y等于XY的次数。

X * Y = X + X + X ...Y times

所以改变

return (multi(i-1)*4)+4;

return multi(i-1) + 4;

并且它将如预期的那样用于乘以4。

但是,如果要将X提高到Y的幂,则必须将X乘以Y的次数。

X to the power of Y = X * X * X...Y times

在这种情况下,您必须对代码进行更多的更改,我将这些更改作为练习留给您。

最新更新