C++入门基础函数(小学生应会)

前言

        以下是一些C++入门基础函数,涉及循环,递归,模拟,深搜等内容,学会这些,小学生比赛拿一等奖将会很稳!

正文

函数如下:

0 阶乘(太简单了,可以不算)

int jc(int n)
{
    int ans=1;
    for(int i=2;i<=n;i++) ans*=i;
    return ans;
}

1普通判素数函数

bool pzs(int n)
{
	if(n<2)	return false;
	for(int i=2;i*i<=n;i++)
		if(n%i==0)	return false;
	return true;
}

2求最大公因数函数(gcd)

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

3基于gcd求最小公倍数函数(lcm)

int lcm(int a,int b)
{return a*b/gcd(a,b);}

4冒泡排序

void bubble_sort(int n,int &a[])
{
	for(int i=1;i<=n;i++)
	{
		bool f=0;
		for(int j=1;ja[j+1]) swap(a[j],a[j+1]),f=1;} 
		if(f==0)	return;
	} 
}

5猴子选大王(约瑟夫问题)

void josephus(int &a[],int n,int m)
{
	int s=0,t=n;
	while(t>0)
	{
		for(int i=0;i

6 进制转换(string)

string szhe2(long long n,long long p)
{
	string s="";
	if(n==0)  return "0";
	while(n)
	{
		long long g=n%p;
		if(g<10) s=(char)(g+48)+s;
		else  s=(char)(g+55)+s;
		n=n/p;
	}
	return s;
}
long long szhe1(string s,int p)
{
	long long n=0,m=s.size();
	for(int i=0;i

7 整数与字符串的互转

long long stll(string s)
{
	long long ans=0;
	for(int i=0;i

 8 汉诺塔(hanoi)

void hanoi(int n,char a,char b,char c)
{
   if(n>0)
   {
   		hanoi(n-1,a,c,b);
   		ans++;
    	if(ans==m)  cout<

9 斐波那契数列

void fib(int &a,int &b,int &c,int &d)
{
   if(d==n)
   {  
     cout<

10 筛选找素数函数

bool check[2000002];
void prime(int n)
{
	check[1]=1;
	for(int i=2;i*i<=n;i++)
	{
		if(!check[i])
		{for(int j=i*i;j<=n;j+=i)  check[j]=1;}
	}
}

11 01背包

int bag(int t,int n,int w[],int v[])
{
    int f[10001];
    for(int i=1;i<=n;i++)
    {
    	for(int j=t;j>=w[i];j--)
    	  if(f[j-w[i]]+v[i]>f[j])  f[j]=f[j-w[i]]+v[i];
    }
    return f[t];
}

 12 生成全排列

long long a[10001],u[10001],b[10001],n;
void dy(long long n)
{
	for(long long i=1;i<=n;i++)  cout<<' '<n)  dy(n);
   else 
   {
   	  for(long long i=1;i<=n;i++)
   	  {
   	  	if(u[b[i]]==0)
   	  	{
   	  	  u[b[i]]=1;
   	  	  a[d]=i;
   	  	  dg(d+1);
   	  	  u[b[i]]=0;
   	    }
	  }
   }	
}

13 回文数

bool hws(int n)
{
	int ans=0,m=n;
	while(m>0)
	{
		ans=ans*10+m%10;
		m/=10;
	}
	return ans==n;
}

14求整数位数 

int qws(long long n)
{
    int ans=0;
    while(n>0)
    {
        ans++;
        n/=10;
    }
    return ans;
}

15递推求汉诺塔次数

long long dthanoi(int n)
{
	if(n==0) return 0;
	long long ans=1;
	for(int i=1;i<=n;i++) ans*=2;
	return ans-1;
}

 以下就是C++入门基础函数,希望这篇文章能够在某些方面帮到你!

附 表格

函数 知识点 难度
阶乘 单循环 半颗星
判素数(普通) 单循环 一颗星
最大公因数 简单递归 两颗星
最小公倍数 调用函数 一颗星
冒泡排序 嵌套循环,数组 两点五颗星
约瑟夫问题 模拟 三颗星
进制转换 字符串 三颗星
整数字符串互转 循环,字符串 两颗星
汉诺塔 递归初步 三颗星
斐波那契数列 递归 三颗星
筛选找素数 模拟 三点五颗星
01背包 简单动态规划 五颗星
生成全排列 深搜 五颗星
回文数 单循环 一颗星
求整数位数 循环初步 一颗星
递推求汉诺塔步数 递推 三颗星

你可能感兴趣的:(函数,c++,青少年编程,算法)