1.害死人不偿命的(3n+1)猜想
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int number=sc.nextInt();
int i=0;
while(number!=1){
if(number%2==1){
number=(3*number+1)/2;
}else{
number=number/2;
}
i++;
}
System.out.println(i);
}
}
注意:
1.在线编译需自己手写很多代码且无提示
2.次数循环只能用while,因为不明确循环次数
2.写出这个数
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
//接收输入变量为字符串类型
String input=sc.next();
int sum=0;
//字符串遍历不好做操作,因此转化为字符型数组
char[] arr1=input.toCharArray();
//遍历求和
for(int i=0;i<arr1.length;i++){
//得到字符型结果需转化为整数型
sum+=arr1[i]-48;
}
String[] arr2={"ling","yi","er","san","si","wu","liu","qi","ba","qiu"};
//把结果转化为字符串类型方便遍历
String sumstr=Integer.toString(sum);
//遍历结果分别进行对应,注意最后一个无空格,要进行区分
for(int j=0;j<sumstr.length();j++){
if(j!=sumstr.length()-1){
//先取出字符串元素索引对应字符,转化为整型后直接作为拼音数组的索引得到指定拼音
System.out.print(arr2[sumstr.charAt(j)-48]+" ");
}else{
System.out.print(arr2[sumstr.charAt(sumstr.length()-1)-48]);
}
}
}
}
注意:思路简单,不熟悉方法汇总
1.toCharArray方法把字符串强转为字符数组
2.字符数-48可以把它转化为整型
3.把整型转化为字符串类型有几种做法:
常见做法:不同的类提供的静态方法---静态方法被static修饰,无需使用类实例调用,可以直接被类调用(String.valueof()和Integer.tostring()均可)
回顾:还可使用StringBuilder
一个可变字符串类,有append()和reverse()方法,可与string类进行相互转换;
具体转换:
StringBuilder是一个类,有它自己的有无参构造方法,通过传参s字符串,可以把字符串转换为StringBuilder类型,然后进行后续的append或reverse操作;而其再转化为String类型只需要使用内部静态方法tostring即可,可直接调用。
String s="我爱你";
StringBuilder sb=new StringBuilder(s);
sb.append("你也爱我")
String s1=sb.tostring();
4.charAt()是返回指定索引处的字符值
5.补充:字符串类型转化为整型Integer.parseInt()方法
总结:整型、字符型、字符串型之间的相互转换以及为什么要转换?
字符串--