| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 781 人关注过本帖
标题:最后问一下各位大佬这个递归的问题怎么改,抱歉呀
只看楼主 加入收藏
qianshang666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-11-26
结帖率:100%
收藏
 问题点数:0 回复次数:0 
最后问一下各位大佬这个递归的问题怎么改,抱歉呀
一个国王给王子们分财产,第一个来领的可得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);
}
搜索更多相关主题的帖子: int main 返回 递归 循环 
2020-11-27 19:07
快速回复:最后问一下各位大佬这个递归的问题怎么改,抱歉呀
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013158 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved