趣题两道,求解!

时间:2022-01-17 19:59:19
    1.幼儿园老师将糖果分成若干等份,让学生按任意次序上来领,第一个来领的得到一份再加上剩余糖果的十分之一;第二个来领的,得到2份加上剩余糖果的十分之一;。。。以此类推。问共有多少个学生,老师共将糖果分成了多少等份?
    2.有这样5个数,将这5个数的每位分离出来正好表示从1-9这9个数字且不重复,如果将这5个数按一定次序排,那么后一个数字将比前一个数字大9,求这5个数。

4 个解决方案

#1


nnd,竟然还有这么分果子的,第一个人得1份,第2个得2份,越晚了越多。真腐败。
拿香蕉皮砸这个巴拉的幼儿园老师

#2


引用 1 楼 dubiousway 的回复:
nnd,竟然还有这么分果子的,第一个人得1份,第2个得2份,越晚了越多。真腐败。
拿香蕉皮砸这个巴拉的幼儿园老师

不一定,比如原来100个果子,分成100等份...好象先拿的人合算

#3


引用 2 楼 yyg990441 的回复:
引用 1 楼 dubiousway 的回复:
nnd,竟然还有这么分果子的,第一个人得1份,第2个得2份,越晚了越多。真腐败。
拿香蕉皮砸这个巴拉的幼儿园老师

不一定,比如原来100个果子,分成100等份...好象先拿的人合算


呵呵,刚才我一看题目就“怒“了。

#4


引用楼主 ainai9000 的回复:
    2.有这样5个数,将这5个数的每位分离出来正好表示从1-9这9个数字且不重复,如果将这5个数按一定次序排,那么后一个数字将比前一个数字大9,求这5个数。



#pragma warning (disable: 4786)
#include<iostream>
#include<set>
using namespace std;

int main(){

    set<int> sett ;
    pair<set<int>::iterator,bool> ret;
    int i,j;

    for(i=5;i<=9;i++){
        sett.clear();
        sett.insert(i);
        for(j=1;j< 5;j++){
            ret= sett.insert(i-j);
            if(ret.second==false) break;
            ret= sett.insert(j);
            if(ret.second==false) break;
        }
        if(5==j) break;
    }

    cout << "The five nums are:\n";
    for(j=0;j<5;j++)
        cout << i+j*9 << endl;
return 0;
}

#1


nnd,竟然还有这么分果子的,第一个人得1份,第2个得2份,越晚了越多。真腐败。
拿香蕉皮砸这个巴拉的幼儿园老师

#2


引用 1 楼 dubiousway 的回复:
nnd,竟然还有这么分果子的,第一个人得1份,第2个得2份,越晚了越多。真腐败。
拿香蕉皮砸这个巴拉的幼儿园老师

不一定,比如原来100个果子,分成100等份...好象先拿的人合算

#3


引用 2 楼 yyg990441 的回复:
引用 1 楼 dubiousway 的回复:
nnd,竟然还有这么分果子的,第一个人得1份,第2个得2份,越晚了越多。真腐败。
拿香蕉皮砸这个巴拉的幼儿园老师

不一定,比如原来100个果子,分成100等份...好象先拿的人合算


呵呵,刚才我一看题目就“怒“了。

#4


引用楼主 ainai9000 的回复:
    2.有这样5个数,将这5个数的每位分离出来正好表示从1-9这9个数字且不重复,如果将这5个数按一定次序排,那么后一个数字将比前一个数字大9,求这5个数。



#pragma warning (disable: 4786)
#include<iostream>
#include<set>
using namespace std;

int main(){

    set<int> sett ;
    pair<set<int>::iterator,bool> ret;
    int i,j;

    for(i=5;i<=9;i++){
        sett.clear();
        sett.insert(i);
        for(j=1;j< 5;j++){
            ret= sett.insert(i-j);
            if(ret.second==false) break;
            ret= sett.insert(j);
            if(ret.second==false) break;
        }
        if(5==j) break;
    }

    cout << "The five nums are:\n";
    for(j=0;j<5;j++)
        cout << i+j*9 << endl;
return 0;
}