刷题记录03

题目一.

刷题记录03_第1张图片
具体思路:
这里就是,一个简单的解方程的一个思路,首先我们要理清楚,这道题,这里面的思路
A-B=a
B-C=b
A+B=c
B+C=d
由上面的关系得出下面的解
A=(a + c)/2
B1=(b+d)/2
B2=(c-a)/2
C=(b-d)/2
具体代码:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
        int d = scanner.nextInt();
        int A = (a + c) / 2;
        int C = (d - b) / 2;
        int B1 = (b + d) / 2;
        int B2 = (c - a) / 2;
        if (B1 != B2) {
            System.out.print("No");
        } else {
            System.out.print(A + " " + B2 + " " + C);
        }
    }
}

题目二

刷题记录03_第2张图片
具体思路:
题目的本意就是将10进制的数转换成N进制。N(2 ≤ N ≤ 16)可以看出进制最多可以到16进
制.
我们首先要知道进制的本质,
刷题记录03_第3张图片
知道这个之后,我们要明白x怎么得到
我这里举个简单的例子.
123 => 123 %10=3 123 / 10 =12
12 %10 =2 12 /10=1
1%10 =1 1/10=0
主要思路:

  1. 输入两个整数m和n,m表示要转换的十进制数,n表示要转换的进制
  2. 定义一个StringBuilder用于存储转换结果
  3. 定义table字符串存储0-9和A-F,代表2-16进制的所有字符
  4. 用flag标记m是否为负数,如果是负数将m转为正数处理,处理结束后如果flag为true需要在结果头部添加负号
  5. 当m为0时,直接添加’0’到结果中
  6. 当m不为0时,重复以下过程:
    6.1 将m除以n,得到余数index
    6.2 从table字符串取出index位置的字符,添加到结果头部
    6.3 m /= n,继续循环

具体代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        while (in.hasNextInt()) { 
            int m = in.nextInt();
            int n = in.nextInt();
            StringBuilder s = new StringBuilder();
            String table = "0123456789ABCDEF"; 
            //用来存储2-16进制中所有的可能
            boolean flag = false; //标记下有没有加负号
            if(m < 0){
                m = -m;
                flag = true; 
                //本身是负数,我们改为正数了。标记下
            }
            if(m == 0){
                s.append('0');
            }
            while (m != 0) {
                s.append(table.charAt(m % n));
                m /= n;
            }
            if(flag){
                s.append('-');
            }
            s.reverse();
            System.out.println(s);
        }

    }
    
}

你可能感兴趣的:(刷题记录,java)