『嗨威说』常见的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 ...
随机推荐
- 原生js实现星星闪烁的效果
星星闪烁的原理其实很简单: html代码: <body style="background:#000"> <div id="stars_box" ...
- PHP连接MySQL数据库的几种方式
PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi :MySQLi 只针对 MySQL 数据库,MySQLi 还提供了 API 接口. PDO (PHP Data Objects ...
- selendroid之inspector
http://selendroid.io/inspector.html 寻找元素.断点模式.
- mybatis开发dao的方式
mybatis基于传统dao的开发方式 第一步:开发接口 public interface UserDao { public User getUserById(int id) throws Excep ...
- (五)TortoiseSVN 客户端-----安装
svn客户端类型 svn客户端需要通过网络访问svn服务端提交文件.查询文件等,可通过以下客户端类型访问svn服务端: 使用Subversion提供的客户端命令,使用方式:在命令行下输入命令操作. 使 ...
- 【Leetcode】【Easy】Balanced Binary Tree
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- Oracle数据库克隆后temp文件因路径变化无法找到问题
Oracle数据库克隆后temp文件因路径变化无法找到出现如下报错Errors in filexxxx.trc:ORA-01157: cannot identify/lock data file xx ...
- 深入浅出C/C++中的正则表达式库
写在前面: 本文是面向有正则表达式基础的读者朋友的,如果你还不知道正则表达式是什么,请先到这里学习一下 :http://en.wikipedia.org/wiki/Regular_expressio ...
- Android(java)学习笔记30:泛型接口的概述和使用
1. 泛型接口的概述和使用: package cn.itcast_06; /* * 泛型接口:把泛型定义在接口上 */ public interface Inter<T> { public ...
- bzoj3816 矩阵变换
Description 给出一个 N 行 M 列的矩阵A, 保证满足以下性质: M>N. 矩阵中每个数都是 [0,N] 中的自然数. 每行中, [1,N] 中每个自然数都恰好出现一次.这意味着每 ...