zoukankan      html  css  js  c++  java
  • ECNU 1147 进制转换

    ECNU 1147 进制转换

    链接

    https://acm.ecnu.edu.cn/problem/1147/

    题目

    单点时限: 2.0 sec

    内存限制: 256 MB

    输入一个十进制数n,将它转换成r进制数输出。

    输入格式
    输入一个正整数t。表示测试数据的组数。

    每个测试实例包含两个整数n(32位整数) 和r (2 <= r <= 36).

    输出格式
    为每个测试实例输出转换后的数,每个输出占一行。如果r大于10,则对应的数字规则参考16进制(比如10用 A 表示 ,16用 G 表示等等)。

    样例
    input
    3
    7 2
    23 12
    -4 3
    output
    111
    1B
    -11

    思路

    传统艺能,数据不作妖就是考察细心的进制转换,这里要注意的是,可能存在负数,用flag存储符号位,其实不存也行,但是这样思路清晰一点。用除法来取数,从后往前,所以输出时要倒着输出,根据flag进行负号处理。
    这题还有变形,m进制转n进制,这里最清晰的思路就是以十进制为中转,进行处理。狠一点可以用java自带的函数进行处理。
    还要考虑到换行,就是格式问题。

    代码

        public static void cal(int n, int r) {
        int flag = 0;
        //0+1-
        if (n < 0) {
          flag = 1;
          n = (-1) * n;
        }
    
        if (flag == 1) {
          System.out.print("-");
        }
        if (r == 10) {
          System.out.println(n);
        } else {
          int[] a = new int[36];
          int j = 0;
          while (n != 0) {
            a[j] = n % r;
            j++;
            n = n / r;
          }
          for (int num = j - 1; num >= 0; num--) {
            if (a[num] > 9) {
              char t = (char) (a[num] + 55);
              System.out.print(t);
            } else {
              System.out.print(a[num]);
            }
          }
          System.out.println();
        }
      }
    
      public static void fun() {
        Scanner sc = new Scanner(System.in);
    
        int t;
        t = sc.nextInt();
        for (int i = 0; i < t; i++) {
          int n;
          n = sc.nextInt();
          int r;
          r = sc.nextInt();
          cal(n, r);
        }
      }
    
  • 相关阅读:
    CF 7C. Line(扩展欧几里德)
    HDU 1700 Points on Cycle(向量旋转)
    POJ 1673 EXOCENTER OF A TRIANGLE(垂心)
    SRM 594 DIV1 250
    Codeforces Round #207 (Div. 1) A. Knight Tournament(STL)
    POJ 1654 Area(水题)
    POJ 1474 Video Surveillance(半平面交)
    POJ 1473 There's Treasure Everywhere!
    POJ 1329 Circle Through Three Points(三角形外心)
    POJ 1279 Art Gallery(半平面交)
  • 原文地址:https://www.cnblogs.com/blogxjc/p/14262512.html
Copyright © 2011-2022 走看看