首页 > 其他分享 >一些常用模板及函数(非竞赛)

一些常用模板及函数(非竞赛)

时间:2022-08-15 23:12:04浏览次数:42  
标签:begin 竞赛 end 函数 int s1 str 模板 string

1.判断素数

bool isPrime(int num) {
	if (num == 1) return false;
	for (int i = 2; i <= int(sqrt(num)); i++)
		if (num % i == 0)
			return true;
	return true;
}

2.求最大公约数

int gcd(int a, int b) {
	return !b ? a : gcd(b, a % b);
}

3.求最小公倍数

int lcm(int a, int b) {
	return a * b / gcd(a, b);  //根据数学关系,两个整数的最小公倍数为它们的乘积除以它们的最大公约数
}

4.判断闰年

bool leapYear(int y) {
	if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))
		return 1;  //是闰年
	return 0;  //不是闰年
}

5.显示连续字符及其个数(对空格适用)

//输入:aaabbbcccc
//输出:a3b3c4
#include<bits/stdtr1c++.h>
using namespace std;
int main() {
	string s1;
	int i, j;
	getline(cin, s1);
	string s2 = "";
	for (i = 0; i < int(s1.size()); i = j) {
		for (j = i; j < int(s1.size()) && s1[j] == s1[i]; j++) ;
		s2 += s1[i] + to_string(j - i);
	}
	cout << s2;
	return 0;
}

6.连续字符串截取(使用substr函数,对空格适用)

//输入:aaabbbcccc
//输出:aaa
//     bbb
//	   cccc
#include<bits/stdtr1c++.h>
using namespace std;
int main() {
	string s1;
	int i, j;
	getline(cin, s1);
	vector<string> v;
	for (i = 0; i < int(s1.size()); i = j) {
		for (j = i; j < int(s1.size()) && s1[j] == s1[i]; j++) ;
		v.emplace_back(s1.substr(i, j - i));
	}
	for (auto x : v)
		cout << x << endl;
	return 0;
}

7.对于string中字母的大小写转换函数

transform(str.begin(), str.end(), str.begin(), ::tolower);//将str字符串中的大写转换为小写,保存在str中
transform(str.begin(), str.end(), str.begin(), ::toupper);//小写转换为大写
transform(str.begin(), str.end(), str.begin(), exchange);//大小写切换

8.合并两个无序序列为一个有序序列

方法⑴
sort(v1.begin(), v1.end()); 
sort(v2.begin(), v2.end()); //先将两个序列有序化
v3.resize(v1.size() + v2.size()); //另开一个序列,需要先分配好空间
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin()); //将两个序列合并入第三个序列
方法⑵
v3.insert(v3.end(),v1.begin(),v1.end());
v3.insert(v3.end(),v2.begin(),v2.end()); //先将两个序列依次插入第三个序列中
sort(v3.begin(),v3.end()); //对第三个序列进行排序

9.K进制转K进制

#include<bits/stdtr1c++.h>
using namespace std;
string itoa(int num, int k) {
	string s;
	do {
		int t = num % k;
		if (k >= 0 && k <= 9) s += (t + '0');
		else s += ('A' + t - 10);
		num /= k;
	} while (num != 0);
	reverse(s.begin(), s.end());
	return s;
}
int main() {
	int num, k;
	cin >> num >> k; //输入需要转换的数字和目标进制
	string ans = itoa(num, k);
	cout << ans;
	return 0;
}

标签:begin,竞赛,end,函数,int,s1,str,模板,string
From: https://www.cnblogs.com/Fare-well/p/16570838.html

相关文章

  • EasyExecl导出模板,实现动态下拉列
    1.需要效果.  2.引入的jar包.<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><......
  • FusionAccess模板制作并发放
    FusionAccess安装并对接具体安装步骤欢迎参照我的博客:https://www.cnblogs.com/kongshuo/p/16333561.html在FC上创建win10虚拟机创建虚拟机,下一步名称随意,操作系统类......
  • pytest常用hook函数
    pytest_runtest_makereport说明:收集每个用例三个阶段的执行结果先执行when='setup'返回前置的执行结果然后执行when='call'返回用例步骤的执行结果最后执行when='t......
  • Python语言开发基础模板
    内容概要基础阶段变量常量与用户交互输入/格式化输出基本运算符常见操作符逻辑运算符成员运算与身份运算分支结构之if分支循环结构之while循环循环结构之for循环变......
  • Shell语言开发基础模板
    内容概要基础阶段脚本处理/测试变量操作符分支结构之if分支分支结构之case分支循环结构之while循环循环结构之for循环函数脚本处理/测试#脚本处理window回车是......
  • Python调用函数模板
    内容概要函数阶段语法结构定义调用返回值参数名称空间闭包函数装饰器(难点)递归函数、二分法、匿名函数、三元表达式、列表生成式迭代器、生成器常见内置函数函数......
  • 《初等数学概览,第一卷,实数与函数》习题选做 An Excursion through Elementary Mathema
    最近在看AntonioCaminhaMunizNeto的AnExcursionthroughElementaryMathematics,VolumeIRealNumbersandFunctions这本书,在这里随便写点课后练习。英语水平......
  • Balanced Tree (数学函数式子的处理)
    题目大意•求n个点组成的每个节点都满足左右子树大小相差至多1的二叉树个数.•0≤n<264.•关键词:计数2022-暑假-VirtualJudge(vjudge.net)思路:直接用......
  • Python-09_01函数参数的传递
    参数传递:在Python中,类型属于对象,变量是没有类型的:如Str=‘hello’;Str=50,在以上代码中,hello是string类型的,50是整型,而变量Str是没有类型的,它仅仅是一个对象的引用(指针),......
  • Python-09_02函数参数类型
    Python函数参数类型:必备参数、关键字参数、缺省参数、任意个数参数。必备参数须以正确的顺序传入函数,也叫做位置参数,即参数是通过位置进行匹配的,从左到右,依次进行匹配,这个......