【Java刷题进阶】基础入门篇

举报
陈橘又青 发表于 2022/09/28 15:33:12 2022/09/28
【摘要】 📚第一题:类型转换 🍂题目描述设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型。输入描述:随机double类型变量输出描述:转化后的int类型变量 🍃示例输入:12.34输出:12输入:1.88输出:1 🌈思路&题解本题考查Java数据类型的强制类型转换,方法如下代码:import java.util.Scanner;public c...

📚第一题:类型转换

🍂题目描述

设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型。

输入描述:

  • 随机double类型变量

输出描述:

  • 转化后的int类型变量

🍃示例

输入:12.34
输出:12

输入:1.88
输出:1

🌈思路&题解

本题考查Java数据类型的强制类型转换,方法如下代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double d = scanner.nextDouble();
        System.out.println(Main.typeConversion(d));
    }
    public static int typeConversion(double d){
        return (int)d;
    }
}

在这里插入图片描述


📚第二题:简单运算

🍂题目描述

输入两个正整数a和b,输出这两个正整数的和,差,积,商,模(若a>b则输出a-b,a/b,a%b的值反之输出b-a,b/a,b%a的值,不考虑小数,请使用int类型)。

输入描述:

  • 两个正整数

输出描述:

  • 它们的和,差,积,商,模。每个值之间用空格隔开

🍃示例

输入:10 5
输出:15 5 50 2 0

🌈思路&题解

使用if-else判断两个整数的大小,使用printf输出,该方法承了C语言的一些特性,可以进行格式化输出。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        scanner.close();
        System.out.printf("");
        if(a > b){
            System.out.printf("%d %d %d %d %d",a+b,a-b,a*b,a/b,a%b);
      }
        else{
            System.out.printf("%d %d %d %d %d",a+b,b-a,a*b,b/a,b%a);  
       }
}
}

在这里插入图片描述


📚第三题:四舍五入

🍂题目描述

定义一个int类型变量i,i为由浮点数变量d四舍五入后的整数类型,请将转换后的i进行输出。

输入描述:

  • 用户随机输入的浮点数

输出描述:

  • 四舍五入之后的整数(小数点后一位>=5则进一,否则舍去)

🍃示例

输入:14.99
输出:15

🌈思路&题解

同样用到了强制类型转换,只要给浮点型变量加0.5,强制类型转换时就达到了四舍五入的效果。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double d= scanner.nextDouble();
        int i=(int)(d+0.5);

        System.out.println(i);
    }
}

在这里插入图片描述


📚第四题:交换变量值

🍂题目描述

在不使用第三个变量的情况下交换两个int类型变量的值
输入描述:

  • a变量和b变量的值

输出描述:

  • 交换后a变量和b变量的值,中间用空格隔开

🍃示例

输入:1 2
输出:2 1

🌈思路&题解

通过使用括号改变运算的优先级来实现,具体代码如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        a = (a+b) - (b=a);
        System.out.println(a+" "+b);
    }
}

在这里插入图片描述

📚第五题:计算商场折扣

🍂题目描述

牛牛商场促销活动:
满100全额打9折;
满500全额打8折;
满2000全额打7折;
满5000全额打6折;
且商场有抹零活动,不足一元的部分不需要付款(类型强制转换)
牛大姨算不清楚自己应该付多少钱,请你帮忙算一下

输入描述:

  • 牛大姨账单钱数(int类型)

输出描述:

  • 参加活动后,牛大姨应付钱数(int类型)

🍃示例

输入:654
输出:523

🌈思路&题解

连续使用三目运算符来进行判断,使用下面方法在逻辑上应该从小到大判断:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int price = console.nextInt();
        int cost = 0;

        cost=(int)(price<100 ? price : price<500
                  ? price*0.9 : price<2000
                  ? price*0.8 : price<5000
                  ? price*0.7 : price*0.6);
        
        System.out.println(cost);
    }
}

在这里插入图片描述

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。