安安這是小弟的程式,功能雖然有,但是無法達到題目的要求阿阿阿阿阿!!!
請問要怎麼計算它的次方呢,我試過在每個if裡面都加計數器i=i+1看他除幾次自己,但是我用printf來看的時候他的i還是=0阿,而且分解完後他還會自己分解自己到至結果出現一個1 請問該如何解決呢?
#include <stdio.h>
int facter(int);
int main()
{
int a;
scanf_s("%d", &a);
facter(a);
return 0;
}
int facter(int x)
{
int i=0,j=0,k=0,l=0; //計數器
if (x % 2 == 0 || x % 3 == 0 || x % 5 == 0 || x % 7 == 0)
{
if (x % 2 == 0)
{
x = x / 2;
i=i++;
printf("2*");
return (facter(x));
}
if (x % 3 == 0)
{
x = x / 3;
j=j++;
printf("3*");
return (facter(x));
}
if (x % 5 == 0)
{
x = x / 5;
k=k++;
printf("5*");
return (facter(x));
}
if (x % 7 == 0)
{
l=l++;
x = x / 7;
printf("7*");
return (facter(x));
}
}
else
{
printf("%d", x);
}
printf("\ni=%d,j=%d,k=%d,l=%d",i,j,k,l);
return 0;
}
如果遞迴函數再多一個參數當計數呢。
安安 您是說把 facter(int) 變成facter(int,int)嗎
我試試看!!