程序设计天梯赛——java版
文章目录
7-念数字
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu
字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234
。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si
。
输入样例:
-600
输出样例:
fu liu ling ling
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
char[] c = s.toCharArray();
for (int i = 0; i < c.length; i++) {
int res = c[i] - '0';//运用Ascall码记录数值
switch (res) {
case 0:
System.out.print("ling");break;
case 1:
System.out.print("yi");break;
case 2:
System.out.print("er");break;
case 3:
System.out.print("san");break;
case 4:
System.out.print("si");break;
case 5:
System.out.print("wu");break;
case 6:
System.out.print("liu");break;
case 7:
System.out.print("qi");break;
case 8:
System.out.print("ba");break;
case 9:
System.out.print("jiu");break;
default:
System.out.print("fu");
}
if(i!=c.length-1){
//n个字符有n-1个空格
System.out.print(" ");
}
}
}
}
8-给整数段求和
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。
输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。
输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X
的格式输出全部数字的和X
。
输入样例:
-3 8
结尾无空行
输出样例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30结尾无空行
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int neg = sc.nextInt();
int pos = sc.nextInt();
int count = 0;//记录每行输出数字的个数
int sum = 0;//记录闭区间所有整数的和
for (int i = neg; i <= pos; i++) {
if(count<5){
System.out.printf("%5d",i);
sum+=i;
count++;
}else {
System.out.println();
System.out.printf("%5d",i);
count=1;
sum+=i;
}
}
System.out.println();
System.out.println("Sum = "+sum);
}
}
13-计算阶乘和
对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
结尾无空行
输出样例:
9
import java.util.Scanner;
public class Main {
public int diGui(int n) {
if (n == 1) {
//最简问题
return 1;
} else {
//其他情况 n*diGui(n-1)
//递归:在方法内部自己调用自己
return n * diGui(n - 1);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int count = 0;//记录阶乘的总和结果
for (int i = N; i > 0; i