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

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 input = new Scanner(System.in);
       
        String[] date = {
   "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; 
        String str = input.next();
        int i = 0;
        if (str.charAt(i) == '-') {
   
            System.out.print("fu ");
            i++;
        }
        while (i < str.length()) {
   
            int n = str.charAt(i)-'0';    
            System.out.print(date[n]);
            i++;
          
            if (i != str.length()) {
   
                System.out.print(" ");
            }
        }

    }
}

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

答案(代码):

#include<stdio.h>
int main(){
   
	int a,b,sum=0;
	scanf("%d %d",&a,&b);
	for(int i=a;i<=b;i++){
   
		printf("%5d",i);
		if((i-a+1)%5==0&&i!=b)
			printf("\n");
		sum+=i;
	}
	printf("\n");
	printf("Sum = %d",sum);
	return 0;
}

L1-010 比较大小 (10 分)

本题要求将输入的任意3个整数从小到大输出。

输入格式:

输入在一行中给出3个整数,其间以空格分隔。

输出格式:

在一行中将3个整数从小到大输出,其间以“->”相连。

输入样例:

4 2 8

输出样例:

2->4->8

答案(代码):

import java.util.Scanner;
 
public class Main {
   
	public static void main(String args[]) {
   
	Scanner std=new Scanner(System.in);
	int t;
	 int a=std.nextInt();
	 int b=std.nextInt();
     int c=std.nextInt();
     if(a>b) {
   
    	 if(a>c) {
   
    		 if(b>c)System.out.print(c+"->"+b+"->"+a);
    		 else System.out.print(b+"->"+c+"->"+a);
    	 }
    	 else System.out.print(b+"->"+a+"->"+c);
     }
     else {
   //a<b
    	 if(b>c) {
   
    		 if(a>c)System.out.print(c+"->"+a+"->"+b);
    		 else System.out.print(a+"->"+c+"->"+b);
    	 }
    	 else System.out.print(a+"->"+b+"->"+c);
     }
 }

L1-013 计算阶乘和 (10 分)

对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。

输入格式:

输入在一行中给出一个不超过10的正整数N。

输出格式:

在一行中输出S的值。

输入样例:

3

输出样例:

9

答案(代码):

#include<stdio.h>
int main(){
   
    int n,product,sum=0;
    scanf("%d",&n);
    if(n<=10){
   
        for(int i = 1;i <= n;i++){
   
           product=1;
            for(int j = 1;j <= i;j++){
   
                product *= j;
            }
            sum += product;
        }
}
    printf("%d",sum)
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值