精华内容
下载资源
问答
  • 进制转化

    2018-04-02 15:14:39
    题目描述 题目描述 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 &...输出格式:每个测试用例的输出占一行,输出A+B的m进制数。 示例1 输入 8 1300 48 2 1 ...

    ###题目描述
    题目描述
    输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
    输入描述:
    输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
    当m为0时输入结束。
    输出描述:
    输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
    示例1
    输入

    8 1300 48
    2 1 7
    0
    输出

    2504
    1000
    ###代码 & 分析

    感觉浙大的机试题目对A+B有很深的执念啊。。。出了好多个A+B了吧,都是基础题目,但是要注意一下数据类型像这道题目最好就是用大数据类型了,还有就是对特殊输入的剔除。

    #include<stdio.h>
    #include<stdlib.h>
    #include<stack>
    #include<iostream>
    using namespace std;
    
    int main(){
        long long int m, a, b;     //数据类型
        while(cin>>m && m){
            cin>>a>>b;
            if(a==0 && b==0){         //对特殊输入的判断
                cout<<0<<endl;
                continue;
            }
            stack<int> st;
            long long int temp = a + b;
            while(temp){
                st.push(temp%m);
                temp /= m;
            }
            while(!st.empty()){
                cout<<st.top();
                st.pop();
            }
            cout<<endl;
        }
    }
    
    
    展开全文
  • 进制转化1>题目描述2>方法一3>方法二 1>题目描述 题目描述: 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 输入描述: 输入一个十六进制的数值字符串。注意:一个用例会同时有多组...

    1>题目描述

    • 题目描述:
      • 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
    • 输入描述:
      • 输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子
    • 输出描述:
      • 输出该数值的十进制字符串。不同组的测试用例用\n隔开。

    在这里插入图片描述

    2>方法一

    • 1、首先利用substring截取除了0x后面的数字
    • 2、根据十六进制转十进制规律分别对A、B、C、D、E、F做处理。
    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int sum = 0;
            while(sc.hasNext()){
                String s = sc.nextLine().substring(2);
                int size = s.length();
                for(int i=0;i<size;i++){
                    char c = s.charAt(i);
                    switch(c){
                        case 'A':
                            sum+=10*Math.pow(16,size-i-1);
                            break;
                        case 'B':
                            sum+=11*Math.pow(16,size-i-1);
                            break;
                        case 'C':
                            sum+=12*Math.pow(16,size-i-1);
                            break;
                        case 'D':
                            sum+=13*Math.pow(16,size-i-1);
                            break;
                        case 'E':
                            sum+=14*Math.pow(16,size-i-1);
                            break;
                        case 'F':
                            sum+=15*Math.pow(16,size-i-1);
                            break;
                        default:
                            sum+= (c-'0')*Math.pow(16,size-i-1);
                            break;
                    }
                }
                System.out.println(sum);
                sum = 0;
            }
        }
    }
    

    3>方法二

    • 利用Integer中的valueOf方法接受一个数字字符串,和它对应的进制即可转成十进制
    import java.util.Scanner;
    
    public class Main
    {
    	public static void main(String[] args)
    {
    	Scanner scanner = new Scanner(System.in);
    	while(scanner.hasNext())
    {
    	String str = scanner.nextLine();
    	System.out.println(Integer.valueOf(str.substring(2),16).toString());
    }
    }
    }
    
    展开全文
  • 考察 十进制转为任意进制:   题目描述: 输入两个不超过整型定义的非负10进制整数A和B(&lt;=231-1),输出A+B的m (1 &...输出格式:每个测试用例的输出占一行,输出A+B的m进制数。 样例输入: 8 1300 4...

    考察 十进制转为任意进制:

     

    题目描述:

    输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。

    输入:

    输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
    当m为0时输入结束。

    输出:

    输出格式:每个测试用例的输出占一行,输出A+B的m进制数。

    样例输入:

    8 1300 48
    2 1 7
    0

    样例输出:

    2504
    1000

    代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    	int m;long long  A, B;
    	while(scanf_s("%d", &m)!=EOF)
    	{
    		if(m==0) break;
    		scanf_s("%lld%lld", &A,&B);
    		long long sum = A + B;
    		int ans[50];
    		int count =0;
    		int k;
    		do
    		{
    			k = sum % m;
    			ans[count++] = k;
    			sum = sum / m;
    		}while(sum!=0);
    		for(int i=count-1;i>=0;i--)
    		{
    			printf("%d", ans[i]);
    		}
    	}
    	return 0;
    }
    

     

    思路如下:只需要记住十进制转为m进制的方法就是先取余再整除这个数字。

     

    另外任意进制转十进制是对应位乘以m的n次方。

    还需要注意两个细节,一是注意结果有可能溢出,因此要选择数据类型为long long。

    而是本循环使用的是do while循环,因为sum是有可能等有0的,这点十分重要,一定要小心!

    展开全文
  • 2进制转化为16进制题目描述解题思路第一种解法:使用Python内置函数完成进制转换第二种解法:据进制表示的原理手工转换参考答案第一种解法:使用Python内置函数完成进制转换第二种解法:据进制表示的原理手工转换...

    题目描述

    来源
    OpenJudge网站 —— 百练习题集-第2798号习题

    要求
    总时间限制: 1000ms 内存限制: 65536kB

    描述

    输入一个2进制的数,要求输出该2进制数的16进制表示。
    在16进制的表示中,A-F表示10-15
    输入
    第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000
    输出
    n行,每行输出对应一个输入。
    样例输入
    2
    100000
    111
    样例输出
    20
    7

    解题思路

    第一种解法:使用Python内置函数完成进制转换

    1. 对于输入的二进制串bin_str,调用int(bin_str, 2)转换为十进制整数number。
    2. 调用hex函数转换为16进制字符串。注意:该16进制字符串以’0x’打头,而且数码a, b, c, d, e, f是小写的。因此,完整的写法hex(number)[2:].upper()。upper()方法是把小写转换成大写。

    第二种解法:据进制表示的原理手工转换

    1. 二进制转换为十六进制的原理是:从右到左(即从低位到高位),每4位二进制转换为1位十六进制。
    2. 对于二进制转换为十六进制,要注意的细节是二进制位的数目不见得是4的倍数。为此,左边补上0,使二进制位的数目成为4的倍数。这样,从左到右每4位二进制转换为1位十六进制也是可行的。
    3. 4位二进制four_bits转换为1位十六进制hex_bit的转换规则是:
      (1)用以下式子求出4位二进制four_bits对应的十进制数字d :
          d = int(four_bits[0]) * 8 + int(four_bits[1]) * 4 + int(four_bits[2]) * 2 + int(four_bits[3])
      (2)如果d是0,1, 2, …, 9,那么数码就是0, 1, 2, …, 9。如果d是10,11, 12, 13, 14或15,那么数码是A, B, C, D, E, F。

    参考答案

    第一种解法:使用Python内置函数完成进制转换

    n = int(input())
    for i in range(n):
        bin_str = input()
        number = int(bin_str, 2)
        print(hex(number)[2:].upper())
    

    第二种解法:据进制表示的原理手工转换

    #四位二进制four_bits转换为一位16进制
    def four_bits_hex_bit(four_bits):
    	#d是四位二进制对应的10进制整数
        d = int(four_bits[0]) * 8 + int(four_bits[1]) * 4 + int(four_bits[2]) * 2 + int(four_bits[3])
        if d < 10:
            return str(d)
        else:
            return chr(ord('A') + d - 10)  #得到A, B, C, D, E或F的数码
    
    n = int(input())
    for i in range(n):
        bin_str = input()
        #如果bin_str的二进制位数的数目不是4的倍数,那么左边凑上0,使数目成为4的倍数
        len_mod_4 = len(bin_str) % 4
        if len_mod_4 > 0:
            bin_str = '0' * (4 - len_mod_4) + bin_str
        #从左到右,每4位二进制转换为1位16进制
        hex_str = ''
        for j in range(0, len(bin_str) // 4):
            hex_str += four_bits_hex_bit(bin_str[4 * j:4*j+4])
        print(hex_str)
    

    测试用例

    1. 题目描述给出的测试用例有两组测试数据。第一组测试数据有6位二进制。第二组测试数据有3位二进制。二进制位数的数目都不是4的倍数。

    2. 考察A, B, C, D, E, F这6个数码。测试数据的二进制位数的数目是4的倍数。
      样例输入
      1
      101010111100110111101111
      样例输出
      ABCDF

    3. 考察0,1,2, …, 9这10个数码。
      样例输入
      10
      0
      1
      10
      11
      100
      101
      110
      111
      1000
      1001
      样例输出
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9

    小结

    1. 本文提供两种解法,供对比。在学习进制表示时,老师可以要求学生依据进制原理来实现进制转换。
    2. 由于16 = 24,故有4位二进制转换成1位十六进制。
    展开全文
  • 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。 思路:parseInt()就是把String类型转化为int类型。  如 String a= "123";  int b ...
  • 描述 写出一个程序,接受一个十六进制的数,...根据进制转化规则,将遇到的字母转化为具体的数字,然后再进行计算。在这里借助了Math.pow()方法,计算16的n次方。 代码示例: import java.util.Scanner; public class
  • 进制转换

    2020-03-24 21:02:58
    测试用例包含多组,每组有两个数n和m,n为所输入的数值,m为输入数的进制, 如m=2.代表所输入的n是二进制,当m和n均为零是表示输出结果。 输出: 若输入的数是十进制,则将其转化为二进制;若输入的数为二进制,则将...
  • 进制中的1之二

    2019-07-03 12:20:08
    给定一个正整数N,请找出N转化为二进制后,...每个测试用例为一个十进制数n,1<=m<=20;1<=n<=2000000000。 Output 输出数据 十进制整数n对应的二进制数中所有1的位置,在一行输出,最低位的位置为0...
  • 写在前面 实现思路 getline接收行字符串 字符串位,是字母(isalpha),字母转化大写,累加(s[i] - ‘A’ + 1)算出n n转化为2进制,对每一位处理, ...测试用例 input: PAT (Basic) output: 3 4 ...
  • 写在前面 思路分析 进制转换函数 convert(n1, radix) 给定1个数值和1个进制,将它...使用当前进制转化得到数值比另1个大或小于0,说明这个进制太大或小 20个测试点,-_-|| 新idea,涨知识! 测试用例 ...
  • 168.excel-sheet-column-title

    2018-10-20 17:55:05
    这道题乍一看挺简单的,就是10进制转换26进制的问题,但是,并非我们平时所说的10进制到26进制的转换方法,用短除法求出来的结果和测试用例不太吻合,这主要是题目做了一点小小的变动。 题目大致意思:1-26分别对应...
  • 最终没时间提交了,自己写的测试用例没问题 思路: 将n进制转化为十进制进行排序,找出单独出现的数,并记录字符串下标 最终按照输入字符串的顺序输出 #include &amp;amp;lt;bits/stdc++.h&amp;amp;gt; ...
  • 360笔试编程题

    2018-09-17 21:55:30
    小明在课上学习了进制转化。现在他有q个询问,每次询问想问你在[l,r]区间内,k进制表示中,k-1的数量最多的是哪个数。比如当k=2时,9的二进制数就是1001,那么它就有2个1。 输入 测试用例包含多组,每一行一个q,...
  • 小明在课上学习了进制转化。现在他有q个询问,每次询问想问你在[l,r]区间内,k进制表示中,k-1的数量最多的是哪个数。比如当k=2时,9的二进制数就是1001,那么它就有2个1。 输入 测试用例包含多组,每一行一个q,...
  • 【LeetCode】67. Add Binary

    2015-08-29 16:45:00
    题目: Given two binary strings, return their...此题我的第一反应是把输入的两个字符串转化为数字,相加以后再把结果转化为二进制输出,但是测试用例中会有很大的输入,此时即使是long long型也会造成溢出,所以...
  • 试题编号: 201912-3 ...3.当计算左边时,以‘+’为分界点,考虑到大小写字母为一个元素的情况,例如最后一个测试用例,存储元素个数时,借助数组,下标为该字母转化进制整数的形式,注意累加...
  • 协议编解码器:主要将二进制数据包解析为协议数据或者反过来将协议数据转化为二进制数据,netty本身提供了HTTP、SSL/TLS、WebSockets、Google Protocol Buffer的编解码器,如果需要扩展可以自己定义协议编解码器;...
  • 同时也新增了非常多的测试用例,做到测试从最底层 RocksDB,到 Raft,再到 Transaction,然后是 SQL 都能覆盖。 在 Chaos 测试上面,TiDB 引入了更多的错误注入工具,例如使用 systemtap 对 I/O 进行 delay 等,也...
  • 所以结构指针传入函数后,如要进行指针移动操作,最好先将其转化为_UC型再说。总之指针操作要小心为上。 3、避免指针的非法引用 【案例1.3.1】 【正 文】 在一次测试中,并没有记得做了什么操作,发现HONET系统的...
  • SVN使用手册中文版.chm

    热门讨论 2011-02-28 10:38:55
    进制文件和转化 版本化的模块 认证 转化CVS版本库到Subversion B. 故障解决 共同问题 使用Subversion的问题 每当我尝试访问版本库,我的Subversion客户端挂起。 每当我尝试运行svn,它告诉我工作拷贝已经锁定。 ...
  • 面试题10:二进制中1的个数:注意到每个非零整数n和n-1进行按位与运算,整数n的二进制数中最右边的1就会变成0,那么二进制数中的1的个数就会减少一个,因此可以利用一个循环,使得 n = n&(n-1) ,计算经过几次...
  • </li><li>以下排序算法所用测试用例 <pre><code>javascript // 生成n个1~scope的随机数字 let randomArr = (n,scope) => { let arr = []; for(let i = 0;i < n;i++...
  • ZendFramework中文文档

    2011-03-22 10:11:12
    7.9.4. 在响应对象中测试异常 7.9.5. 子类化响应对象 7.10. 插件 7.10.1. 简介 7.10.2. 编写插件 7.10.3. 使用插件 7.10.4. 获取和控制插件 7.10.5. 包含在标准发行包中的插件 7.10.5.1. 动作堆栈 7.10.5.2...
  • asp.net知识库

    2015-06-18 08:45:45
    使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标...
  • 直白的就是为了节省人力、时间或硬件资源,提高测试效率,便引入了通过软件或程序自动化执行测试用例进行测试; 二、python简介 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 我们先来看一各种...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

进制转化测试用例