题意翻译:
题目描述: 高桥君要调整空调的设定温度。现在的设定温度是A度,而他想调到B度。 空调遥控器按一次可以:
- 上调或下调1度
- 上调或下调5度
- 上调或下调10度 高桥君想求出从A调到B度的最小操作数。
输入格式: 输出以下列形式给出。
A B
0<=A,B<=40
输出格式: 输出最小操作数。
样例与说明:
样例1: 输入:
7 34
输出:
5
依次上调10、10、5、1、1度即可
样例2: 输入:
19 28
输出:
2
上调10度、下调1度即可。
样例3: 输入:
10 10
输出:
0
温度一样时无需调整。
AC Code:
//心血来潮,这次不写万能头,回忆一下C语言吧!!! #include<stdio.h> #include<string.h> #include<stdlib.h> #define min(a,b) a<b ? a:b//C语言中没有max和min,需要自己提前写好 int begin,end; int num=0x7ffffff;//记录调节次数 void dfs(int begin,int step) { if(step>=num) {//剪枝,大于等于最小次数,直接结束 return ; } if(begin==end) {//调到需要的温度 num=min(num,step);//修改调节次数为最小 return ; }else if(begin>end) {//比需要的温度高,就向下调 dfs(begin-1,step+1); dfs(begin-5,step+1); dfs(begin-10,step+1); }else {//比需要的温度低,就向上调 dfs(begin+1,step+1); dfs(begin+5,step+1); dfs(begin+10,step+1); } } int main() { scanf("%d %d",&begin,&end);//起始温度,需要温度 dfs(begin,0); printf("%d\n",num); return 0; }