【发布时间】:2014-03-19 20:46:51
【问题描述】:
给定一个初始种群 x 和一个确切的期望种群 y, 到达 y 的最少步数是多少 使用三个函数 A{x+1}, B{x+2}, C{x+x}
我的方法
#include<iostream>
using namespace std;
int fA (int x)
{
return x+1;
}
int fB(int x)
{
return x+2;
}
int fC(int x)
{
return x+x;
}
int main()
{
int s, n;
cin>>s>>n;
int counter=0;
while(fC(s)<=n)
{
s=fC(s);
counter++;
}
while(fB(s)<=n)
{
s=fB(s);
counter++;
}
while(fA(s)<=n)
{
s=fA(s);
counter++;
}
cout<<counter;
return 0;
}
我假设先从增长最快的函数开始,然后再从其他函数开始是错误的,
欢迎任何帮助。
【问题讨论】:
-
也许你需要检查一下 s
-
while 循环每次都会检查
-
说你从 x=1 开始,想要到达 y=7,按照我的逻辑,你像这样 1->2->4->6->7 四个步骤,但方法更短是 1->3->5->7 三步。
-
嗯,一般来说,1人口根本无法繁殖。但是您可以在程序的开头添加一些内容以涵盖该边缘情况 - 即
if(s == 1){s=fB(s); counter++;}
标签: c++ function population