1,农夫、羊、菜和狼的故事
-
题目描述:
-
有一个农夫带一只羊、一筐菜和一只狼过河.
果没有农夫看管,则狼要吃羊,羊要吃菜.
但是船很小,只够农夫带一样东西过河。
问农夫该如何解此难题?
-
输入:
-
题目没有任何输入。
-
输出:
-
题目可能有种解决方法,求出步骤最少的解决方法,
按顺序输出农夫想把羊、菜、狼全部运过河需要哪几个步骤。
如果需要将羊带过河去则输出“sheep_go”。
如果需要将羊带回来则输出“sheep_come”。
如果需要将菜带过河去则输出“vegetable_go”。
如果需要将菜带回来则输出“vegetable_come”。
如果需要将狼带过河去则输出“wolf_go”。
如果需要将狼带回来则输出“wolf_come”。
如果需要空手返回则输出“nothing_come”。
如果需要空手过河则输出“nothing_go”。
每输出一种方案,输出一行“succeed”。
-
样例输入:
-
样例输出:
-
提示:
-
题目可能有多组解决方法,每种方法输出后要再空一行。
一种方法中的多句话,每句话占一行。
#include<stdio.h>??
int main()
{
printf("sheep_go\n");
printf("nothing_come\n");
printf("vegetable_go\n");
printf("sheep_come\n");
printf("wolf_go\n");
printf("nothing_come\n");
printf("sheep_go\n");
printf("succeed\n");
printf("\n");
printf("sheep_go\n");
printf("nothing_come\n");
printf("wolf_go\n");
printf("sheep_come\n");
printf("vegetable_go\n");
printf("nothing_come\n");
printf("sheep_go\n");
printf("succeed\n");
printf("\n");
return(0);
}
2,N阶楼梯上楼问题
-
题目描述:
-
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
-
输入:
-
输入包括一个整数N,(1<=N<90)。
-
输出:
-
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
-
样例输入:
-
4
-
样例输出:
-
5
总结:斐波那契数列变形,没什么意思
#include<iostream>
using namespace std;
int main(){
int n;
long num[1000];
while(cin>>n){
num[1]=1;
num[2]=2;
for(int i=3;i<=n;i++){
num[i] = num[i-1] + num[i-2];
}
cout<<num[n]<<endl;
}
return 0;
}