(第七篇题解,请多指教)
Step 1 分析题目
题目描述
C
C
C老师发明了
J
X
JX
JX编程语言,在这种编程语言里,
只有
+
=
+=
+=这个运算符, //一会写代码的时候要注意 可以将某个变量的值增加,
现在输入
a
,
b
,
n
,
a,b,n,
a,b,n,请问仅使用
a
,
b
a,b
a,b两个变量来
进行
+
=
+=
+=运算,最少多少次能够严格超过
n
n
n的值?
//这里给了我们一个小小的提示
只能使用
a
+
=
b
a+=b
a+=b,或者
b
+
=
a
b+=a
b+=a
//这里要牢记条件,一会用到,不能使用
a
+
=
a
a+=a
a+=a或
b
+
=
b
b+=b
b+=b。
输入格式
三个整数 , a , b , n ,a,b,n ,a,b,n(三个数都不超过 1 e 9 1e9 1e9)
输出格式
一个整数,代表最少步数
样例输入1
1 2 3
样例输出1
2
样例输入2
5 2 14
样例输出2
3
Step 2 思路简述
通过分析上述题目可以得出,我们要求的是最少超过 n n n的数值,这道题的主要要求其实就是在题目要求下控制数的大小,一定要定义一个变量去表示最小的步数,将其累加后输出。
控制数大小需要用到一个 w h i l e while while循环,括号里的部分需要体现控制数大小。
众所周知, f o r for for循环和 w h i l e while while循环的区别是条件是循环时一般用while循环,
所以大括号里需要加条件,这时候再去看题,上面我勾过一个条件,而这个条件就是重点
具体请看下述代码
Step 3
完整AC代码
#include<bits/stdc++.h>
using namespace std;
int a,b,n,bushu;//一定要定义一个变量后续有用
int main(){
freopen("jx.in","r",stdin);
freopen("jx.out","w",stdout);
cin>>a>>b>>n;//输入
while(a<=n&&b<=n){//控制数的大小
if(a<b)a+=b;//如果a>b,
else b+=a;
s++;
}
cout<<s;
return 0;
}