每日一题---蓝桥练习“数据交换”问题

简介: 每日一题---蓝桥练习“数据交换”问题

题目

资源限制

时间限制:1.0s 内存限制:256.0MB

问题描述

  编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。

  输入格式:输入只有一行,包括两个整数。

  输出格式:输出只有一行,也是两个整数,即交换以后的结果。

  要求:主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而swap函数只负责交换变量的值,不能输出交换后的结果。

输入输出样例

样例输入

4 7

样例输出

7 4

分析

刚开始以为是个非常简单的题,就利用方法嘛,就两个参数嘛,就往方法里传嘛,就像这样嘛:

import java.util.Scanner;
/**
 * @Author: Re
 * @Date: 2021/2/27 20:56
 */
public class Main {
    private static void swap(int x,int y){
        int i = x;
        x = y;
        y = i;
    }
    public static void main(String[] args) {
        int x,y;
        Scanner scanner = new Scanner(System.in);
        x = scanner.nextInt();
        y = scanner.nextInt();
        swap(x,y);
        System.out.println(x+" "+y);
    }
}

然后就错了嘛。

这时候我想起C语言里有这样的题,就是形参的改变不会传递给实参,这个问题C语言中是利用指针来做的。

虽然Java没有指针,但咱有对象啊(除了容易丢,没多大缺点)。

于是就有了以下的解题思路。

解题代码

import java.util.Scanner;
/**
 * @Author: Re
 * @Date: 2021/2/27 21:32
 */
public class Main {
    private static class shuZi{
        public int n;
        public int getN() {
            return n;
        }
        public void setN(int n) {
            this.n = n;
        }
        public shuZi(int n) {
            this.n = n;
        }
        public shuZi(){
        }
    }
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        shuZi x = new shuZi(scanner.nextInt());
        shuZi y = new shuZi(scanner.nextInt());
        swap(x,y);
        System.out.println(x.getN()+" "+y.getN());
    }
    private static void swap(shuZi x,shuZi y){
        int t=x.getN();
        x.setN(y.getN());
        y.setN(t);
    }
}


相关文章
|
7月前
|
自然语言处理 Java C#
C程序设计内容与例题讲解 -- 第一章(第五版)谭浩强
C程序设计内容与例题讲解 -- 第一章(第五版)谭浩强
每日一题---力扣算法题 401. 二进制手表
每日一题---力扣算法题 401. 二进制手表
每日一题---力扣算法题 401. 二进制手表
|
机器学习/深度学习 算法
【第十五届蓝桥杯备赛(bushi,写文凑个数)】蓝桥OJ---长草
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 BFS Flood Fill算法
186 0
|
机器学习/深度学习 人工智能 CDN
初学者必刷题---PTA基础编程题目集第一期
初学者必刷题---PTA基础编程题目集第一期
|
数据安全/隐私保护 C++
C/C++之(五)洛谷刷题基础题 --- 新年好
C/C++之(五)洛谷刷题基础题 --- 新年好
610 0
C/C++之(五)洛谷刷题基础题 --- 新年好
|
数据安全/隐私保护
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:1.解密
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:1.解密
106 0
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:1.解密
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:2.纪念日
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:2.纪念日
140 0
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:2.纪念日
|
测试技术
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:8.字符串编码
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:8.字符串编码
116 0
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:8.字符串编码
每日一题---蓝桥杯基础练习“字母图形”
每日一题---蓝桥杯基础练习“字母图形”
每日一题---蓝桥练习“字符串合并”
每日一题---蓝桥练习“字符串合并”