L1-007 念数字 (10 分)
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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[] num={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
String a=sc.next();//输入数字
char[] c=a.toCharArray();
StringBuilder sb=new StringBuilder();
if(c[0]=='-'){//处理第一个字符
sb.append("fu");
}else{
sb.append(num[c[0]-'0']);
}
for(int i=1;i<c.length;i++){
//num[c[i]-'0']:数字对应的读法
sb.append(" "+num[c[i]-'0']);
}
System.out.println(sb);
}
}
L1-008 求整数段和 (10 分)
给定两个整数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 A=sc.nextInt();
int B=sc.nextInt();
int sum=0;
int flag=0;
for(int i=A;i<=B;i++){
sum+=i;
StringBuilder sb=new StringBuilder();
String s=i+"";
for(int j=1;j<=5-s.length();j++){
sb.append(" ");
}
System.out.print(sb);
System.out.print(i);
flag++;
if(flag%5==0){
System.out.println();
}
}
if(flag%5!=0){
System.out.println();
}
System.out.println("Sum = "+sum);
}
}
L1-010 比较大小 (10 分)
本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例:
4 2 8
输出样例:
2->4->8
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int[] arr=new int[3];
for(int i=0;i<3;i++){
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
for(int i=0;i<3;i++){
System.out.print(arr[i]);
if(i!=2){
System.out.print("->");
}
}
}
}
L1-013 计算阶乘和 (10 分)
对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
输出样例:
9
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
long res=0;
for(int i=1;i<=N;i++){
res+=factorial(i);
}
System.out.println(res);
}
public static long factorial(int n){//阶乘
long res=1;
for(int i=1;i<=n;i++){
res*=i;
}
return res;
}
}
L1-018 大笨钟 (10 分)
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。
下面就请你写个程序,根据当前时间替大笨钟敲钟。
输入格式:
输入第一行按照hh:mm的格式给出当前时间。其中hh是小时,在00到23之间;mm是分钟,在00到59之间。
输出格式:
根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。如果不是敲钟期,则输出:
Only hh:mm. Too early to Dang.
其中hh:mm是输入的时间。
输入样例1:
19:05
输出样例1:
DangDangDangDangDangDangDangDang
输入样例2:
07:05
输出样例2:
Only 07:05. Too early to Dang.
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String s=sc.next();
String[] str;
str=s.split(":");
int[] num=new int[2];
for(int i=0;i<2;i++){
num[i]=Integer.parseInt(str[i]);
}
if(num[0]>=12){
if(num[0]==12&&num[1]==0){
System.out.println("Only "+s+". Too early to Dang.");
}else{
for(int i=0;i<num[0]-12;i++){
System.out.print("Dang");
}
if(num[1]>0){
System.out.print("Dang");
}
}
}else{
System.out.println("Only "+s+". Too early to Dang.");
}
}
}