牛客网-华为机试

HJ5 进制转换 中等

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

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

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

示例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\n",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("\n");
                    return 0;
                }
            }
        }
        if(n!=1)
            printf("%d ",n);
        printf("\n");
    }
    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
posted @ 2021-03-24 16:02  Jorgensen  阅读(248)  评论(0编辑  收藏  举报
#site_nav_under { display: none; } .c_ad_block, .ad_text_commentbox { display: none; margin: 0; padding: 0; } #ad_under_google { height: 0; overflow: hidden; } #ad_under_google a { display: none; }