1001 害死人不偿命的(3n+1)猜想
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b=A(a);
System.out.println(b);
}
public static int A(int a){
int i=0;
while(a!=1){
if(a%2==0){
a=a/2;
i++;}
else{
a=(3*a+1)/2;
i++;}
}
return i;
}
}
1002 写出这个数 (20 分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
第二题没能实现,我没找到能装下28位整型数字的变量类型,用long也读不进去,也许可以直接用String来读取,然后通过类似栈的方法去模拟对数字的操作,懒得写了。。。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
System.out.println(a);
String b=A(a);
System.out.println(b);
}
public static String A(int a){
@SuppressWarnings("unused")
int i=0;
@SuppressWarnings("unused")
int x=a;
int sum=0;
String y="";
while(x>0){
sum=x%10+sum;
x=x/10;
System.out.println(sum);
}
while(sum>0){
switch(sum%10) {
case 0: y=y+"ling";break;
case 1: y=y+"yi";break;
case 2: y=y+"er";break;
case 3: y=y+"san";break;
case 4: y=y+"si";break;
case 5: y=y+"wu";break;
case 6: y=y+"liu";break;
case 7: y=y+"qi";break;
case 8: y=y+"ba";break;
case 9: y=y+"jiu";break;
}
sum=sum/10;
if(sum>0)
y=y+" ";
}
return y;
}
}