当前位置: 首页 > article >正文

codetest

1、寻找身高相近的小朋友

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

//寻找身高相近的小朋友

//输入,第一行两个整数,分别是小明身高,其他小伙伴个数,第二行是其他小伙伴的身高
//100 10
//95 96 97 98 99 101 102 103 104 105

//输出,和小明身高差绝对值小的前面,差值大的排后面,差值相同个子小的排在前面
//99 101 98 102 97 103 96 104 95 105

int h, n;
struct node{
    int height;
}a[128];
bool cmp(node A, node B){
    if (abs(A.height - h) !=abs(B.height - h)){
        return abs(A.height- h) < abs(B.height - h);
    }
    return A.height < B.height;
}

int main() {
    cin >> h >> n;
    for (int i = 0; i < n; ++i) {
        cin >> a[i].height;
    }
    sort(a, a+n ,cmp);
    for (int i = 0; i <n ; ++i) {
        cout << a[i].height << " ";
    }
    return 0;
}

2、用连续自然数之和来表达整数

#include <iostream>
#include <vector>

using namespace std;

//用连续自然数之和来表达整数
//输入一个整数 9
//输出表达式和表达式个数
//9=9
//9=4+5
//9=2+3+4
//Result:3

bool isContinune(vector<int> v){
    for (int i = v.size() -1; i > 0; --i) {
        if (v[i] != v[i-1] -1)
            return false;
    }
    return true;
}
int sum(vector<int> v)
{
    int sum = 0;
    for (int i : v)
        sum += i;
    return sum;
}
void print(vector<int> v, int n)
{
    cout << n << "=";
    if (v.size() == 1) {
        cout << v[0] << endl;
        return;
    }
    int i;
    for ( i = v.size() - 1; i > 0; --i)
        cout << v[i] << "+";
    cout << v[i] << endl;

}
int main()
{
    int n;
    int sumcount = 0;
    vector<int> v;
    cin >> n;

    for (int i = n; i >=1; --i)
    {
        for (int j = i; j >=1 ; --j) {
            v.push_back(j);
            if (sum(v) == n && isContinune(v)) {
                print(v, n);
                ++sumcount;
                v.clear();
                break;
            }
            if (sum(v) > n) {
                v.clear();
                break;
            }
        }
    }
    cout << "Result:" << sumcount;
}

3、开源项目热榜

#include <bits/stdc++.h>

using namespace std;

//开源项目热榜
//输入第一行,项目个数
//第二行,权重值
//第三行开始,各个项目名字,和关注、收藏、fork、issue、MR的数量
//输出热度值降序排列,热度值相同按名字转成小写字母后字典排序

/*
4
5 6 6 1 2
camila 66 70 46 158 80
victoria 94 76 86 189 211
anthony 29 17 83 21 48
emily 53 97 1 19 218
*/


int n;
int w[5];
struct node{
    string na, na_small;//na_small是全部都是小写字母的项目名称
    int watch, star, fork, issue, mr;
    int sum;
};
node a[128];

bool cmp(node A, node B)//重载的sort中的比较函数
{
//热度值不同的时候,按照热度值排序
    if (A.sum != B.sum)
        return A.sum > B.sum;
//热度值相同的时候,按照字典序排序
    return A.na_small < B.na_small;
}

int main()
{
    cin >> n;
    for (int i = 0; i < 5; i ++ )
        cin >> w[i];
    for (int i = 0; i < n; i ++ )//处理输入
    {
        cin >> a[i].na >> a[i].watch >> a[i].star >> a[i].fork
            >> a[i].issue >> a[i].mr;
        a[i].sum = a[i].watch * w[0] + a[i].star * w[1] +
                   a[i].fork * w[2] + a[i].issue * w[3] + a[i].mr * w[4];//计算热度值
//将项目名称中的大写字母转成小写字母
        for (int j = 0; j < a[i].na.size(); j ++ )
        {
            if (a[i].na[j] >= 'A' && a[i].na[j] <= 'Z')
                a[i].na_small += a[i].na[j] + 32;
            else a[i].na_small += a[i].na[j];
        }
    }

    sort(a , a + n , cmp);//排序
//输出原来可能带大写字母的项目名称
    for (int i = 0; i < n; i ++ )
        cout << a[i].na << endl;

    return 0;
}

4、素数之积

#include <iostream>
#include<cmath>
using namespace std;

//素数之积
//输入一个整数,因数分解,找出是那两个素数的乘积
//成功找到,从小到大输出两个素数,分解失败,输出-1 -1
/*输入15,输出 3 5*/

bool isPrimer(int num) {
    bool res = true;
    for (int i = 2; i <= sqrt(num); i++) {
        if (num % i == 0)
            return false;
    }
    return res;
}
int main() {
    int num;
    cin >> num;
    bool result = false;
    for (int i = 2; i <= sqrt(num); i++) {
        if (num % i == 0) {
            if (isPrimer(num / i)) {
                cout << i << " " << num / i << endl;
                result = true;
                break;
            }
        }
    }
    if (!result)
        cout << -1 << " " << -1 << endl;
    return 0;
}

http://www.kler.cn/news/285145.html

相关文章:

  • Linux下递归设置目标目录及其子目录和文件的权限
  • Qt/C++地址转坐标/坐标转地址/逆地址解析/支持百度高德腾讯和天地图
  • 项目策划书六度自由双足机器人
  • WHAT - 通过 react-use 源码学习 React(Animations 篇)
  • Qt QTableWidget可编辑设置,设置部分可编辑
  • 线性表之静态链表
  • Jenkins发邮件功能如何配置以实现自动化?
  • 推理引擎测试-算力共享:test_inference_engine
  • 力扣68.文本左右对齐
  • 18043 找出3个数中最大的数
  • Datawhale x李宏毅苹果书入门 AI夏令营 task03学习笔记
  • 数据结构——单向链表
  • 五、实现随机地图
  • 【STM32】通用定时器TIM(输出比较)
  • 【sqlite3】MySQL8转sqlite3需要对sql做的一些处理
  • PyCharm 自定义字体大小
  • C++ 有向图算法
  • Tiptap中BubbleMenu讲解
  • CAN协议通信 学习笔记
  • 如何使用Hive构建高校考试分析系统:大数据技术在教育领域的应用
  • Ubuntu中qt类与类信号槽的创建及使用
  • 滑动窗口元素的平均值 ← STL : deque
  • GD32F4xx---RTC初始化设置及闹钟方式实现秒中断讲解
  • 数据结构概念
  • 代码随想录算法训练营第 56 天 |108冗余连接 109冗余连接 II
  • 地平线—征程2(Journey 2-J2)芯片详解(28)—MIPI RX/TX+SD/SDIO/eMMC Interface Timings
  • Python Excel 操作全面总结
  • 计算物理精解【3】
  • 10分钟了解OPPO中间件容器化实践
  • ue Rotate to face BB entry转向不对