1.题目描述:假设有这样一个算法题,该计算器只有两个按钮,按下第一个按钮能是数值减1,按下第二个按钮能使数值的值乘以2,当前显示数值为N,那么按多少次按钮使得显示数值变成M?
输入:两个整数N和M,1<=N,M<=10^9
输出:使得显示数N变为M的次数
样例输入:4 5
样例输出:3
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
int len=0;
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int M=sc.nextInt();
for (int i = 0; i < 1000; i++) {
if(N>=M) {
len+=N-M;
System.out.println(len);
break;
}else {
if (M%2!=0) len++;
M=(int) Math.ceil(M/2.0);
len++;
}
}
}
}
2.输入一个字符串,要求逆序输出,时间复杂度为O(n)
import java.util.Scanner;
public class Demo {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
String str=input.next();
char[] strm=str.toCharArray();
for(int i=0;i<str.length();i++){
System.out.print(strm[str.length()-1-i]+"");
}
}
}