最后问一下各位大佬这个递归的问题怎么改,抱歉呀
一个国王给王子们分财产,第一个来领的可得1份加上剩下的十分之一;第二个来领的可得2份加上剩下的十分之一;依次类推。国王有几个儿子,分了多少份财产?#include<stdio.h>
int F(int n, int m) //假设老国王共有 n 个儿子,财产共分成了 m 份,第一个儿子时,剩 余财产份数 (m-1) * 9/10
{
//第n++个儿子时,剩余财产份数
m = (m-n)*9/10; //m=(m-n)应该为10的倍数
n++;
m = m-n;
if(m%10 == 0)//为 10 的整数倍时,进行下一步判断
{
if(m==0)return 1; //当财产剩余数为零时,返回 1,结束 main 函数中的 i 循环
else{m=m/10*9;F(n,m);} //当财产剩余数不为零时,调用 F
}
else return 0; //当不是 10 的整数倍时,返回 0,继续 i 循环
}
void main()
{
int n, m, i;
for(i = 1; i<=n; i++) // 当 i==1 时,存在一组取值
{
n = 0; //对于每一个 i,需对 n 清零
m = i; //以 i 循环来产生财产份数
if(F(n,m)) break; //返回 1,结束循环
}
printf("n = %d m = %d\n\n", n, m);
}