Java 题目(一)及简单讲解


一、保留小数

输入华氏温度f,计算并输出相应的摄氏温度c。 c=5*(f-50)/9+10。

输入、输出数据说明:输入数据可以是整数也可以是小数;输出数据的结果保留两位小数。

输入:
17.2

输出:
The temprature is -8.22.

答案:

import java.util.*;

public class Hello{
   public static void main(String[] args){
       Scanner in =new Scanner(System.in);
       double f,c;
       f=in.nextDouble();
       c=5*(f-50)/9+10;
       System.out.println("The temprature is "+(String.format("%.2f",c))+".");  //这里提供一种保留小数的方法
   }
}

拓展:
另一种保留小数的方法:

public class Main{
    public static void main(String[] args){
        System.out.printf("%.2f",1.789);    //输出后不换行
        System.out.println("---");
        System.out.printf("%.2f\n",1.789);  //输出后换行,\n表示换行符
        System.out.println("---");
        System.out.printf("%.2f%n",1.789);  //输出后换行,%n表示换行符
        System.out.println("---");
    }    
}

输出为

1.79---
1.79
---
1.79
---

二、数组排序

输入一个正整数n,再输入n个整数,将它们从大到小排序后输出。

输出格式:数据输出在一行,且每个数据后面有一个空格。

答案:

import java.util.*;

public class Hello {
   public static void main(String[] args) {
       Scanner in = new Scanner(System.in);  //创建数组
       int n,k;
       n=in.nextInt();
       int s[] = new int[n];
       for (int i=0;i<n;i++) {
           k = in.nextInt();
           s[i] = k;
       }
       Arrays.sort(s);    //数组顺序排序(由小到大)
       for (int j=s.length-1;j>=0;j-- ){
           System.out.print(s[j]+" ");  //逆序输出
       }
   }
}

拓展:

  1. 创建数组
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        int[] a = new int[n];  //创建数组的三种写法,n也可以为具体实数
        int []b = new int[n];
        int c[] = new int[n];
        int[] s0 = {2,3,4,5};  //直接构造
        int[][] d = new int[n][];  //构造二维数组,至少要给出外层数组的n
        int s1[][] = {{1,2},{3,4}};
    }
}
  1. 数组排序
import java.util.*;
public class Main{
    public static void main(String[] args){
        int[] a = {3,5,6,2,4,6,9,1,10};
        Arrays.sort(a);  //顺序排序
        System.out.println(Arrays.toString(a));
        for (int i=0; i <= a.length/2; i++){
            int t=a[i];
            a[i] = a[a.length-1-i];
            a[a.length-i-1] = t;  //逆序排序
        }
        System.out.println(Arrays.toString(a));
    }
}

输出为

[1, 2, 3, 4, 5, 6, 6, 9, 10]
[10, 9, 6, 6, 5, 4, 3, 2, 1]

三、Math类

求a+aa+aaa+aa…a
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:

输入2个正整数a和n, 求a+aa+aaa+aa…a(n个a)之和。所有测试数据的计算结果都没有超出long类型的表数范围。

输入输出例子如下,注意括号内是说明。

输入
2 (repeat=2)
2 3 (a=2, n=3)
8 5 (a=8, n=5)

输出
246 (2+22+222)
98760 (8+88+888+8888+88888)

答案:

import java.util.Scanner;
public class Main{
   public static void main(String[] args){
       Scanner in = new Scanner(System.in);
       int n;
       n=in.nextInt();
       for (int j=0;j<n;j++) {
           int a,b,c=0,d=0;
           a=in.nextInt();
           b=in.nextInt();
           for (int i = 1; i <= b; i++) {
               c += a * (Math.pow(10, i - 1));
               d += c;
           }
           System.out.println(d);
       }
   }
}

拓展:

public class Main{
    public static void main(String[] args){
        int a=3,b=-4;
        System.out.println(Math.pow(a,b)); //a^b
        System.out.println(Math.exp(a));   //e^a
        System.out.println(Math.abs(b));   //b的绝对值
        System.out.println(Math.max(a,b)); //a,b中的最大值
        System.out.println(Math.min(a,b)); //a,b中的最小值
        System.out.println(Math.sqrt(a));  //a开平方
		}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值