团体程序设计天梯赛-练习集(10分题1)

团体程序设计天梯赛-练习集(10分题1)

L1-007 念数字 (10 分)
输入一个整数,输出每一个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音以下:javascript

0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:java

输入在一行中给出一个整数,如:1234。web

提示:整数包括负数、零和正数。app

输出格式:svg

在一行中输出这个整数对应的拼音,每一个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。ui

输入样例:spa

-600
输出样例:设计

fu liu ling lingcode

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的全部整数以及这些数的和。xml

输入格式:

输入在一行中给出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.");
   	}
   	}
}