标题:求解问题...
取消只看楼主
mylzy159
Rank: 2
等 级:论坛游民
帖 子:61
专家分:23
注 册:2009-4-12
结帖率:100%
已结贴  问题点数:20 回复次数:2 
求解问题...
输入一个整数N,这个整数能被分解成若干个整数的阶层相加..如N=x!+y!+.....+n!
并且各个整数互不相等..输入N,求x+y+.....+n的值..
搜索更多相关主题的帖子: 求解 
2010-04-19 07:26
mylzy159
Rank: 2
等 级:论坛游民
帖 子:61
专家分:23
注 册:2009-4-12
得分:0 
提供思路就行了...忘记说了..不好意思..
2010-04-21 16:20
mylzy159
Rank: 2
等 级:论坛游民
帖 子:61
专家分:23
注 册:2009-4-12
得分:0 
#include <iostream>
using namespace std;
void fun(int x,int sum)
{
    int i,a,result=1;
    for(i=1;i<=x;i++)
    {
        for(a=1;a<=i;a++)
            result*=a;
        if((x-result)==0)//判断整数的最后一个阶层
        {
            sum+=i;
            cout<<sum;
            exit(0);
        }
        if((x-result)<result)//判断是否是最大阶层
        {
            sum+=i;
            fun(x-result,sum);
        }
        result=1;
    }
}
main()
{
    int sum=0,n;
    cin>>n;
    fun(n,sum);
}
貌似能行/..
2010-04-21 16:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-303540-1-1.html




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

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