我正在尝试编写一个程序,在该程序中我输入一个数字,例如 891,并将这些数字中的每一个输入一个数组中
,x[0] = 8
例如x[1] = 9
x[2] = 1
我试图使用递归来实现我的方法:
void calc(int val, int k)
{
static int number = val;
if((val/10))
{
calc(val/10, k--);
}
int x = number - val*pow(10, k);
cout << x << ", k = " << k << " and number = " << number << endl;
}
int main()
{
//write a program that converts a number to string
int number;
cout << "Enter a number: ";
cin >> number;
number = 891;
int k = 0;
//while(number/10 != 0)
k = 2;
calc(number, k);
}
基本上我正在尝试使用我的递归函数来尝试将数字分解为更精细的部分,但是我得到的输出为 (in val
): 91, 1, -8019。有没有办法可以改进这一点,但保持结构?