【经典算法】:皇帝的遗产

国王分财产。某国王临终前给儿子们分财产。他把财产分为若干份,然后给第一个儿子一份,再加上剩余财产的1/10;给第二个儿子两份,再加上剩余财产的1/10;„„;给第i个儿子i份,再加上剩余财产的1/10。每个儿子都窃窃自喜。以为得到了父王的偏爱,孰不知国王是“一碗水端平”的。请用程序回答,老国王共有几个儿子?财产共分成了多少份? 源程序:

附上代码

#include <iostream>
using namespace std;
int main(){
    int i=0,count=0;
    int property[100];
    do{
        count += 9;
        property[count] = count;
        for(i=count-1;i>=1;i--){
            if(property[i+1]%9!=0) break;
            else
                property[i] = property[i+1]*10/9+i;
        }
    }while(i>=1);
    cout<<"皇帝有:"<<count<<"个儿子"<<endl;
    cout<<"份数有:"<<property[1]<<"份"<<endl;
}

你可能感兴趣的:(算法)