zoukankan      html  css  js  c++  java
  • 牛客网-华为机试

    HJ5 进制转换 中等

    题目描述
    写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

    输入描述:
    输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。

    输出描述:
    输出该数值的十进制字符串。不同组的测试用例用 隔开。

    示例1
    输入
    0xA
    0xAA
    输出
    10
    170

    Python 极致偷懒

    while True:
        try:
            print(int(input(),16))
        except:
            break
    

    C++

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    using namespace std;
    int main(){
        string data;
        while(cin>>data){
            int ans=0;
            int cur=0;
            for(int i=data.length()-1;i>=2;i--){
                int tmp=0;
                if(data[i]>='A')
                    tmp=data[i]-'A'+10;
                else
                    tmp=data[i]-'0';
                ans+=tmp*pow(16,cur++);
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    

    HJ6 质数因子 中等

    题目描述
    功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

    最后一个数后面也要有空格

    输入描述:
    输入一个long型整数

    输出描述:
    按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。

    示例1
    输入
    180
    输出
    2 2 3 3 5

    #include<cstdio>
    #include<cmath>
    #include<iostream>
    using namespace std;
    int main(){
        int n;
        while(cin>>n){
            int cn=n;
            int m=sqrt(n);
            int tmp=1;
            for(int i=2;i<=m;i++){
                while(n%i==0){
                    n/=i;
                    printf("%d ",i);
                    tmp*=i;
                    if(tmp==cn){
                        printf("
    ");
                        return 0;
                    }
                }
            }
            if(n!=1)
                printf("%d ",n);
            printf("
    ");
        }
        return 0;
    }
    

    HJ8 合并表记录 中等

    题目描述
    数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

    输入描述:
    先输入键值对的个数
    然后输入成对的index和value值,以空格隔开

    输出描述:
    输出合并后的键值对(多行)

    示例1
    输入
    4
    0 1
    0 2
    1 2
    3 4
    输出
    0 3
    1 2
    3 4

    #include<iostream>
    #include<map>
    using namespace std;
    int main(){
        int n;
        cin>>n;
        map<int,int> ma;
        while(n--){
            int key=0,val=0;
            cin>>key>>val;
            ma[key]+=val;
        }
        for(auto i=ma.begin();i!=ma.end();i++)
            cout<<i->first<<" "<<i->second<<endl;
        return 0;
    }
    

    HJ9 提取不重复的整数 中等

    题目描述
    输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
    保证输入的整数最后一位不是0。
    输入描述:
    输入一个int型整数

    输出描述:
    按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

    示例1
    输入
    9876673
    输出
    37689

    #include<iostream>
    #include<set>
    using namespace std;
    int main(){
        int n;
        cin>>n;
        set<int> se;
        while(n!=0){
            if(se.find(n%10)==se.end()){
                cout<<n%10;
                se.insert(n%10);
            }
            n/=10;
        }
        cout<<endl;
        return 0;
    }
    

    HJ10 字符个数统计 中等

    题目描述
    编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
    例如,对于字符串abaca而言,有a、b、c三种不同的字符,因此输出3。
    输入描述:

    输入一行没有空格的字符串。

    输出描述:

    输出范围在(0~127)字符的个数。

    示例1
    输入
    abc

    输出
    3

    #include<iostream>
    #include<cstring>
    #include<set>
    using namespace std;
    int main(){
        string data;
        while(cin>>data){
            set<char> se;
            for(auto i=data.begin();i!=data.end();i++){
                se.insert(*i);
            }
            cout<<se.size()<<endl;
        }
        return 0;
    }
    

    HJ34 图片整理 中等

    题目描述
    Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。

    本题含有多组样例输入。

    输入描述:
    Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。

    输出描述:
    Lily的所有图片按照从小到大的顺序输出

    示例1
    输入
    Ihave1nose2hands10fingers
    输出
    0112Iaadeeefghhinnnorsssv

    c++

    #include <iostream>
    #include <string>
    #include <algorithm>
    using  namespace std;
    int main(){
        string data;
        while(cin>>data)
        {
            sort(data.begin(),data.end());
            cout<<data<<endl;
        }
        return 0;
    }
    

    python3

    while True:
        try:
            s=input()
            lst=sorted(s)
            print(''.join(str(i) for i in lst))
        except:
            break
    

    HJ35 蛇形矩阵 中等

    题目描述
    蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

    例如,当输入5时,应该输出的三角形为:

    1 3 6 10 15
    2 5 9 14
    4 8 13
    7 12
    11

    请注意本题含有多组样例输入。

    输入描述:
    输入正整数N(N不大于100)

    输出描述:
    输出一个N行的蛇形矩阵。

    示例1
    输入
    4
    输出
    1 3 6 10
    2 5 9
    4 8
    7

    while(True):
        try:
            n=int(input())
            arr=[]
            for i in range(n):
                if i==0:
                    arr=[(j+j*j)//2 for j in range(1,n+1)]
                else:
                    arr=[t-1 for t in arr[1:]]
                print(' '.join(str(a) for a in arr))
        except:
            break
    
  • 相关阅读:
    大数相加和快速相乘
    (转)直线分割平面 与 平面分割区域 问题
    8.3水了一天
    8.2数论(1)
    7.31 基本算法1.2
    7.31 基本算法1.1
    《GSoC 2019小结》&《买车小记》By Ray Guo
    【笔试题】中国电信天翼智慧家庭2020春季校园招聘
    TinyMCE主题的文章目录没法点击页内跳转
    【毕设】答辩如何准备?本科毕业论文如何撰写文献综述?
  • 原文地址:https://www.cnblogs.com/Jorgensen/p/14573912.html
Copyright © 2011-2022 走看看