笔试题目练习【2022携程秋招】

阅读: 评论:0

笔试题目练习【2022携程秋招】

笔试题目练习【2022携程秋招】

【2022携程秋招第五批】

1. 题目:xx拿到了两个正整数a和b,请你告诉她a∗b有哪些因子。

输入描述:

两个正整数a,b.  1≤a,b≤

输出描述:

第一行输出一个正整数n,代表a*b的因子数量。
第二行输出n个正整数,代表a*b的所有因子,从小到大排列。

示例1

输入例子: 

6 2

输出例子:

6
1 2 3 4 6 12
#include <iostream>
#include<vector>
#include<set>
using namespace std;set<long long>mp;
void solve(int a ,vector<int>& v){for(int i=1;i*i<=a;i++){if(a%i==0){v.push_back(i);v.push_back(a/i);}}
}int main() {int a, b;cin>>a>>b;vector<int> av,bv;solve(a,av);solve(b,bv);for(int i:av){for(int j:bv){mp.insert(i*j);}}cout<<mp.size()<<endl;for(auto i:mp){cout<<i<<" ";}cout<<endl;}

(完全照抄牛客一位同学的回答,这里只是备注下,怕忘记)

int a, b;cin>>a>>b;int num = a*b;

之前做这道题的时候下意识,直接将两个输入值进行乘法运算并赋值

结果是不对的

看了这位同学的答案之后发现,这道题是对两个输入值做处理,构造函数,各自求出因子之后,再输出答案的。

还是基础不好的原因,平地起高楼了属于是。

5. 题目:

查询单日多次下订单的用户信息?

现有某公司部分订单数据及用户会员等级数据,如下所示:

订单信息表:order_tb(订单id-order_id,用户id-user_id,订单金额-order_price,订单创建时间-order_time)

会员等级信息表:uservip_tb(用户id-user_id,会员等级-vip,积分-point)

请查询单日下单多次的用户信息?
要求输出:订单日期,user_id,下单次数,会员等级
注:单日多次下订单指该日同一用户下单次数大于1次,结果按照下单次数降序排序

示例数据结果如下:

结果解释:

user_id为12的用户在9月2日分别下了order_id为105、106的订单,故结果如上。

der_time) order_date,a.user_id,count(order_id) order_nums,b.vip
fromorder_tb a
left joinuservip_tb b
on a.user_id=b.user_id
group bya.user_id,der_time)
der_id)>1
order der_id) desc

注意点:1. 区别什么时候用where,什么时候用having;

               2. 查找信息中包含日期时,用什么函数,以及要求的格式要注意。

where和having的区别:

1、where一定在group by 之前,having一般在group by 之后;

2、where后的条件表达式里不允许使用聚合函数,而having可以;

3、having 子句中的每一个元素也必须出现在select列表中(有些数据库例外,如Oracle)(此时having的要求无法达到,可以选择where的方式对条件进行限定)

搬运链接:

 where、group by、 having 的用法_group by where用法-CSDN博客

常用的日期函数:

1. now()  获取当前日期加时间

select now()  //2023-09-29 07:34:23

2. curdate()  获取当前日期

select curdate() //2023-09-29

3. curtime()  获取当前时间

select curtime  //07:34:23

4. date()  将字符串转为日期

select date('2023-09-29')  //2023-09-29

5. year() 获取日期年份

select year('2023-09-29')  //2023

6. yearweek() 获取年份加周数

select yearweek(date('2023-09-29'))  //202339

还有很多,暂时先了解这么多,其他的可以在下面链接中好好看看。

MySQL中常用的日期函数 (baidu)

【2022携程秋招第四批】

1. 题目:

游游拿到了一个正整数x,她希望把这个整数的前k位进行翻转。

输入例子:

123 2

输出例子:

213

例子说明:

将前两位反转后,12变成了21。正整数变成了213。

示例2

输入例子:

80407 4

输出例子:

4087

例子说明:

将前4位翻转,变成0408,连起来后去除前导零为4087。
#include <iostream>
#include<string>
using namespace std;void reverseString(string s) {for (int i = 0, j = s.size() - 1; i < s.size()/2; i++, j--) {swap(s[i],s[j]);}
}int main(){int x,k;cin>>x>>k;string str = to_string(x);for(int j=0,l=k-1;j<k/2;j++,l--){swap(str[j],str[l]);}//字符串转换为整型数值的函数,头文件为#include<string>cout<<stoi(str)<<endl;
}

注意点:1. 数字转换为字符串之后,翻转数字其实是翻转字符串

-》翻转函数reverse   一定要会写这个函数,了解函数內部的原理,才能更好的使用它;

2. 数字转换为字符串之后,对于翻转后的字符串,可能回存在前面几个字符是‘0’字符

-》使用stoi函数:完美完成字符串转换为整型数值  同样stoi函数也需要了解内部实现原理

本文发布于:2024-01-28 04:21:57,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063869214737.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:笔试   携程   题目
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23