|
发表于 2020-12-21 14:55:42
|
显示全部楼层
本帖最后由 一世轻尘 于 2020-12-21 15:24 编辑
我分享一下我的吧- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int n;//荷叶数
- int i,j;//循环变量
- int k;//青蛙此时在的位置
- int temp=0;
- int num=0;//最多的次数
- printf("请输入荷叶数:\n");
- scanf("%d",&n);
- int *p;
- p=(int*)malloc(sizeof(int));
- printf("请依次输入第1,2片荷叶,第3,4片荷叶...之间最多跳跃的次数\n");
- for(i=0;i<n-1;i++)
- {
- scanf("%d",&p[i]);
- }
- for(k=0;k<n;k++)
- {
- for(j=0;j<100000;j++)
- {
-
- }
- }
- }
复制代码
前面的大概就是这个意思了,后面我的水平就不够了,我的第一个思路是穷举,后来发现他是一个动态的n,这样就不能用有限个for循环来解,第二个思路是利用随机数产生1和-1,青蛙每在某个位置移动时,就使他所对应的数组(表示该位置可移动的次数)的值减一,直至青蛙所在位置的前后所能移动的次数都为0,然后使他循环足够多的次数来获得正确答案,不过这个要写很长的代码,因为分很多种情况(比如说第一片和第n片荷叶只能往一个方向走)。 |
|