『嗨威说』常见的C++函数模板整理(一)
开学两天,身上的职责直接变为两个班班长,三个小组组长,哇这事情估计够我忙活了,想躲都躲不掉啊,看来我还是真招人推荐各种管理职务啊,以后要是有人推荐我当经理啊领导啊该多好哈哈哈哈。记得今天奶奶生日,很开心地给奶奶打了一通电话,这怕是我第一次给奶奶电话送生日祝福了哈哈哈,是啊,很想珍惜身边的人,但很多时候却一心想提高自己地能力而忽视了身边人,就这四年,就这四年好好提升自己,毕业出来一定要好好陪陪家里祖辈亲戚们。
今天有点特殊,我整理了一下学到这么久编程以来的一些模板和技巧,虽然还没整理完,就作为(一)吧,后面会慢慢更新(其实是今天解不出难题哭了,一天一道acm都要死了,可能自己训练量和能力远远不够吧,所以渣渣了,努力努力!)
今日推荐:
今天心情很糟糕,每次心情很烂的时候总会去听听自己最最最喜欢的歌曲没有之一,去激励自己走出烂心情,希望读到这篇博客的读者们,也能轻松摆脱自己的烂心情,笑对人生~
《于是》 - 邓紫棋
既然回不去了 我还在烦恼什么于是告诉自己不要哭我不要哭 我不能哭往前方的路走一步再走一步 就会幸福成长要学会独处虽然有一点孤独链接:https://music.163.com/#/song?id=36198060&autoplay=true&market=baiduhd
(-> 001)分割数值(倒序输出)模板:
#include<iostream>
using namespace std;
int main()
{
int num,k;
cin >> num;
while(num>)
{
k = num % ;
cout<<k<<" ";
num = num / ;
}
}
(-> 002)求A、B的最大公约数:
法一:
long long gcd(long long m, long long n)
{
return (m==)?n:gcd(n%m, m);
}
法二:
int gcd(int big, int small)
{
if (small > big) swap(big, small);
int temp;
while (small != ){ // 辗转相除法
if (small > big) swap(big, small);
temp = big % small;
big = small;
small = temp;
}
return(big);
}
(-> 003)求A与B的最小公倍数。 与上面函数配合使用。
long long lcm(long long a, long long b)
{
return a / gcd(a, b) * b;
}
(-> 004)判断素数的方法:
法一:
bool Sushu(int num)
{
int sqrtO,test = ;
sqrtO = sqrt(num);
for(int i = ;i<=sqrtO;i++)
{
if(num%i==) break;
else test++;
}
if(test == (sqrtO -)) return ;
else return ;
}
法二:
bool judge(int x){
for(int i=;i<sqrt(x);i++)
if(x%i==)
return false;
return true;
}
(-> 005)全排列输出:
void Pern(int list[], int k, int n) { // k表示前k个数不动仅移动后面n-k位数
if (k == n - ) {
for (int i = ; i < n; i++) {
printf("%d", list[i]);
}
printf("\n");
}else {
for (int i = k; i < n; i++) { // 输出的是满足移动条件所有全排列
swap(list[k], list[i]);
Pern(list, k + , n);
swap(list[k], list[i]);
}
}
}
(-> 006)向量工具:
struct node {
double x; // 横坐标
double y; // 纵坐标
};
typedef node Vector;
Vector operator + (Vector A, Vector B) { return Vector(A.x + B.x, A.y + B.y); }
Vector operator - (Point A, Point B) { return Vector(A.x - B.y, A.y - B.y); }
Vector operator * (Vector A, double p) { return Vector(A.x*p, A.y*p); }
Vector operator / (Vector A, double p) { return Vector(A.x / p, A.y*p); }
double Dot(Vector A, Vector B) { return A.x*B.x + A.y*B.y; } // 向量点乘
double Length(Vector A) { return sqrt(Dot(A, A)); } // 向量模长
double Angle(Vector A, Vector B) { return acos(Dot(A, B) / Length(A) / Length(B)); } // 向量之间夹角
double Cross(Vector A, Vector B) { // 叉积计算 公式
return A.x*B.y - A.y*B.x;
}
Vector Rotate(Vector A, double rad) // 向量旋转 公式 {
return Vector(A.x*cos(rad) - A.y*sin(rad), A.x*sin(rad) + A.y*cos(rad));
}
Point getLineIntersection(Point P, Vector v, Point Q, Vector w) { // 两直线交点t1 t2计算公式
Vector u = P - Q;
double t = Cross(w, u) / Cross(v, w); // 求得是横坐标
return P + v*t; // 返回一个点
}
(-> 007)组合公式:
long long int C(int m,int n) {
int k=;//相当于C(m,n)
long long int ans=;
while(k<=n) {
ans=((m-k+)*ans)/k;
k++;
}
return ans;
}
(-> 008)大数阶乘公式:
string bigFactorial(int n){
int ans[maxn],digit = ;
ans[] = ;
for(int i = ; i <= n; i++){
int num = ;
for(int j = ; j < digit; j++){
int temp = ans[j]*i + num;
ans[j] = temp%;
num = temp/;
}
while(num != ){
ans[digit] = num%;
num /= ;
digit++;
}
}
string str = "";
for(int i = digit-; i >= ; i--)
str += ans[i] + '';
return str;
}
(-> 009)杨辉三角打印:
#include<iostream>
#include<cstdlib>
using namespace std;
long long int s=;
long long int h,i,j; int main()
{
while(cin>>h)
{
cout<<""<<endl;
for (i = ; i <= h; s= , i++)
{
cout<<"1 ";
for (j = ; j <= i - ; j++)
{
cout<<(s = (i - j) * s / j)<<" ";
}
cout<<""<<endl;
}
cout<<endl;
}
return ;
}
(-> 010)其他整理:
1、char c1,c2,c3的int型即为ASCII码
2、cout << setprecision(2) << fixed << 固定精度输出
3、printf("%.2lf\n",num)用于输出double类型数据并固定精度
4、获取需要空格输入的段落:
char a[];
cin.getline(a, )
5、数组a[100]的清零操作 memset(a,0,sizeof(a));
6、 getchar();//把回车符吃掉,否则下一句会出错
gets(a); //读取整行
length=strlen(a); //获得长度
前阵子的一些小模板,积累了起来,贴在博客就方便自己或者有需要的人使用啦~ 我会继续更新这些比较实用常用的小模板呢~ 如有错误,希望评论指正哟~ 互相帮助才能更加成长~
『嗨威说』常见的C++函数模板整理(一)的更多相关文章
- 『嗨威说』算法设计与分析 - STL中Sort函数的实现原理初探
本文索引目录: 一.对Sort算法实现的个人阅读体会 二.Sort算法使用的三个排序算法的优点介绍 2.1 插入排序的优缺点 2.2 堆排序的优缺点 2.3 快速排序的优缺点 2.4 新的结合排序—— ...
- 『嗨威说』算法设计与分析 - PTA 数字三角形 / 最大子段和 / 编辑距离问题(第三章上机实践报告)
本文索引目录: 一.PTA实验报告题1 : 数字三角形 1.1 实践题目 1.2 问题描述 1.3 算法描述 1.4 算法时间及空间复杂度分析 二.PTA实验报告题2 : 最大子段和 2.1 实践题目 ...
- 『嗨威说』算法设计与分析 - 动态规划思想小结(HDU 4283 You Are the One)
本文索引目录: 一.动态规划的基本思想 二.数字三角形.最大子段和(PTA)递归方程 三.一道区间动态规划题点拨升华动态规划思想 四.结对编程情况 一.动态规划的基本思想: 1.1 基本概念: 动态规 ...
- 『嗨威说』算法设计与分析 - PTA 程序存储问题 / 删数问题 / 最优合并问题(第四章上机实践报告)
本文索引目录: 一.PTA实验报告题1 : 程序存储问题 1.1 实践题目 1.2 问题描述 1.3 算法描述 1.4 算法时间及空间复杂度分析 二.PTA实验报告题2 : 删数问题 2.1 实践题目 ...
- 『嗨威说』算法设计与分析 - 贪心算法思想小结(HDU 2088 Box of Bricks)
本文索引目录: 一.贪心算法的基本思想以及个人理解 二.汽车加油问题的贪心选择性质 三.一道贪心算法题点拨升华贪心思想 四.结对编程情况 一.贪心算法的基本思想以及个人理解: 1.1 基本概念: 首先 ...
- 『嗨威说』算法设计与分析 - 回溯法思想小结(USACO-cha1-sec1.5 Checker Challenge 八皇后升级版)
本文索引目录: 一.回溯算法的基本思想以及个人理解 二.“子集和”问题的解空间结构和约束函数 三.一道经典回溯法题点拨升华回溯法思想 四.结对编程情况 一.回溯算法的基本思想以及个人理解: 1.1 基 ...
- 『Numpy学习指南』排序&索引&抽取函数介绍
排序: numpy.lexsort(): numpy.lexsort()是个排字典序函数,因为很有意思,感觉也蛮有用的,所以单独列出来讲一下: 强调一点,本函数只接受一个参数! import nump ...
- C++ 模板常见特性(函数模板、类模板)
背景 C++ 是很强大,有各种特性来提高代码的可重用性,有助于减少开发的代码量和工作量. C++ 提高代码的可重用性主要有两方面: 继承 模板 继承的特性我已在前面篇章写过了,本篇主要是说明「模板」的 ...
- 2017-2018-2 20155303『网络对抗技术』Final:Web渗透获取WebShell权限
2017-2018-2 『网络对抗技术』Final:Web渗透获取WebShell权限 --------CONTENTS-------- 一.Webshell原理 1.什么是WebShell 2.We ...
随机推荐
- 为什么C语言会有头文件
前段时间一个刚转到C语言的同事问我,为什么C会多一个头文件,而不是像Java和Python那样所有的代码都在源文件中.我当时回答的是C是静态语言很多东西都是需要事先定义的,所以按照惯例我们是将所有的定 ...
- sass的安装
sass的安装 1.当ruby安装完成后,在自己电脑开始菜单下面找到ruby的控制台"cmd"; 2.然后直接在命令行中输入 gem install sass 3.在安装过程中 可 ...
- PHP环境配置解释
PHP中注释:#,//,/* */ 一.修改Apache配置 DocumentRoot "G:\PHP" //修改完需要重启Apache //以下二选一 ----- ...
- String变量的两种创建方式
在java中,有两种创建String类型变量的方式: String str01="abc";//第一种方式 String str02=new String("abc&qu ...
- html的标签(1)
首先补充上一次没有讲到的,html文件后缀名有2种,一种是.htm,一种是.html..html是老的教科书里面的文件后缀名,.html是新的教科书的文件后缀名..htm文件是不完整的支持html5的 ...
- overflow:hidden的用法
overflow:hidden是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解. <%@ Page Language="C#& ...
- CSS3嵌入字体
@font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体.语法: 例子:
- QBC(Query By Criteria) QBE (Query By Example)
QBC 参考:(Hibernate的QBC查询) //is empty and is not empty @Test public void testQBC(){ Session session = ...
- SQL Server ->> 存储过程sp_rename重命名数据对象
1) 表转移Schema和重命名表 ALTER SCHEMA Stage TRANSFER dbo.Stage_AAA; EXEC sp_rename 'Stage.Stage_AAA', 'AAA' ...
- SQA计划和测试规程
一.SQA计划 (一)目的 本计划的目的是定义我们该小组所做的“云医院”项目的SQA任务和职责,在项目过程中应遵循的流程.规范和约定等,以确保软件质量得到维持. (二)范围 本计划应用于“云医院”项目 ...