青蛙跳井 一只掉入10米井中 每天跳3米滑2米 问它第几天跳出来 用C编写

来源:百度知道 编辑:UC知道 时间:2024/05/08 19:38:51
题目很简单 我想看下其它的不同解法 拓宽思路
#include<stdio.h>
void main()
{
int l=10,a=3,b=2,s;//l为井高,a为每天上跳高度,b为每天下滑高度。
int days=0;
for(s=0;s<l-a;days++)
{
s+=a-b;
}
printf("青蛙能在%d天内跳出井\n",days+1);//days要加上最后跳的那一天
}

这是我写的 如果算法特别 会另加分数

判断算法好坏或不同的是时间复杂度和空间复杂度。

你的算法 时间复杂度为 O(n) ,
空间复杂度 O(1).只有int s是额外的.

#include<stdio.h>
#include<math.h>
void main()
{
int l=10,a=3,b=2;//l为井高,a为每天上跳高度,b为每天下滑高度。
int days = ceil((float)(l-a)/(a-b));
printf("青蛙能在%d天内跳出井\n",days+1);//days要加上最后跳的那一天
}

时间复杂度为 O(1) ,
空间复杂度 O(0).

8天 第一天1米,第二天2米,第三天3米,第四天4米,底5天5米,第六天6米,第七天7米,第八天10米

永远也跳不出去,应为它是再跳,不是爬

9天