标题:不甘井底的蜗牛
只看楼主
jsjljh
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2010-3-21
结帖率:0
已结贴  问题点数:20 回复次数:4 
不甘井底的蜗牛
一只小蜗牛在6尺深的井底想爬出来。在白天,它最多只能爬3尺高,到了夜里,它又会滑下去1尺。可怜的是小蜗牛还在一天一天的衰老下去,
它的爬升能力每天都会减少其最大爬升能力的10%,即3*10%=0.3尺。也就是说,第二天,它在白天只能爬升2.7尺,第三天就只有2.4尺了,但
它每天夜里滑下去的距离不变.它究竟哪一天才能爬上来呢?
请求解一个通解。即根据井深H,每种蜗牛最大的爬升距离U,不由自主的下滑距离D,以及衰弱因子F,判断它到底哪一天能爬上来?
或者永远爬不上来?
输入数据H,U,D,F(均在【1,100】区间内),若H为0,则表示输入结束;若天亮之前蜗牛回到井底,则它不会再次尝试爬出井口。
样本输入如下:
6 3 1 10
10 2 1 50
50 5 3 14
1 1 1 1
50 6 4 1
50 6 3 1
搜索更多相关主题的帖子: 井底 蜗牛 
2010-04-08 21:50
jsjljh
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2010-3-21
得分:0 
我的代码是:
#include<iostream>
using namespace std;
void main()
{
    int H ,U,D,T=0;
    double h1=0,h2=0,F;
t:cout<<"请输入数据:"<<endl;
    for(;;)
    {
cin>>H>>U>>D>>F;
       getchar();
if(!(H>=1&&H<=100))
    {
        cout<<"输入错误,请重新输入:"<<endl;
        goto t;}
else
    if(!(U>=1&&H<=100))
    {
        cout<<"输入错误,请重新输入:"<<endl;
        goto t;}
    else
    if(!(H>=1&&H<=100))
    {
        cout<<"输入错误,请重新输入:"<<endl;
        goto t;}
    else
    if(!(H>=1&&H<=100))
    {
        cout<<"输入错误,请重新输入 :"<<endl;
        goto t;}
    else
 for(;h1<=H&&h1>=0;)
    {        
        T++;
        h1=h1+U;
        h2=h1-D;        
        h1=h2;   
        if(!(h2>0||h2==0))
            cout<<"failure on day  "<<T<<endl;
        U=U-U*F*0.1f*0.1f;
   }
   cout<<"success on day  "<<T<<endl;
}
}
运行结果如下::我很无语,不知道是我的设计有问题,还是软件不稳定,晕的慌!还请高人帮忙!呵呵
请输入数据:
102 100 50 10
输入错误,请重新输入:
请输入数据:
100 50 4 3
success on day  3
1 1 1 1
success on day  3
10 2 1 50
success on day  3
102 100 2 3
输入错误,请重新输入:
请输入数据:
10 2 1 50
success on day  3
100 50 4 3
success on day  3
。。。
2010-04-08 22:36
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:0 
#include <iostream>
using namespace std;
float fuck_h;//井深
float fuck_u;//蜗牛
float fuck_d;//下滑
float fuck_f;//衰老
float fuck_day;//2012
float fuck_show;//在哪了呢

int main()
{
    cout<<"井深,爬升,下滑,衰老"<<endl;
    cin>>fuck_h>>fuck_u>>fuck_d>>fuck_f;
    fuck_day=1;fuck_show=0;
    cin.get();
    cout<<"猥琐的蜗牛逃生开始了,按回车渡过每一天."<<endl;
    while(1)
    {
    fuck_show=fuck_show+(fuck_u-fuck_d);//计算每天的位置
    cout<<"[第"<<fuck_day<<"天]   它爬到了"<<fuck_show<<",井有"<<fuck_h;
    if(fuck_show<=0){cout<<"\n该死的蜗牛放弃了,请在祈祷下让它安息,杯具.";break;}
    if(fuck_show>=fuck_h){cout<<"\n我C它出来了,给它女人和金钱!";break;}
    fuck_u=fuck_u-(fuck_u*(fuck_f*0.01));//计算每天的衰老
    fuck_day++;
    cin.get();
    }
    cin.get();
}
2010-04-08 22:40
jsjljh
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2010-3-21
得分:0 
谢啦,高手!呵呵!你还真幽默!
2010-04-08 22:53
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:20 
添加5%的机会被奥特曼救走
15%机会速度加10   
10%机会无条件上升5
几率计算取值为连续的,真正几率取值是无连续的,但是我粉懒.

不玩了,我要睡觉了


#include <iostream>
#include <time.h>
using namespace std;
float fuck_h;//井深
float fuck_u;//蜗牛
float fuck_d;//下滑
float fuck_f;//衰老
float fuck_day;//2012
float fuck_show;//在哪了呢
int fuck_god;//该死的上帝来管闲事

int main()
{
    cout<<"井深,爬升,下滑,衰老"<<endl;
    cin>>fuck_h>>fuck_u>>fuck_d>>fuck_f;
    fuck_day=1;fuck_show=0;
    cin.get();
    cout<<"猥琐的蜗牛逃生开始了,按回车渡过每一天."<<endl;
    srand((unsigned)time(NULL));
    while(1)
    {
    fuck_show=fuck_show+(fuck_u-fuck_d);//计算每天的位置
    cout<<"[第"<<fuck_day<<"天]   它爬到了"<<fuck_show<<",井有"<<fuck_h;
    if(fuck_show<=0){cout<<"\n该死的蜗牛放弃了,请在祈祷下让它安息,杯具.";break;}
    if(fuck_show>=fuck_h){cout<<"\n我C它出来了,给它女人和金钱!";break;}
    fuck_god=rand()%100;if(fuck_god<=4){cout<<"\n奥特曼来到地球,看到萎缩的蜗牛兴奋了,在老二的同意下把蜗牛救走了";break;}
    fuck_god=rand()%100;if(fuck_god<=14){cout<<"\n蜗牛得到了潘金莲的帮助,吃下了\"永恒的XX\"力量加强了10";fuck_u=fuck_u+10;}
    fuck_god=rand()%100;if(fuck_god<=9){cout<<"\nLZ吃错药了,蜗牛神奇的爬高了5";fuck_show=fuck_show+5;}
    fuck_u=fuck_u-(fuck_u*(fuck_f*0.01));//计算每天的衰老
    fuck_day++;
    cin.get();
    }
    cin.get();
}
2010-04-08 23:11



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




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

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