我应该为学校编写一个用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 4\n");
scanf("%d",&i);
printf("%d * 4 is %d\n",i, multi(i));
}
答案 0 :(得分:2)
将X
与Y
乘以X
Y
的次数。
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
在这种情况下,您还需要对代码进行一些其他更改,我将在练习中留给您