您的位置:首页 > 其它

一些基础的东西

2017-04-03 21:41 169 查看
本篇介绍:

1.cmp函数的用法(sort的高级用法)

2.C++常用的头文件

3.打表算阶乘和斐波那契数列

4.一些简单的函数及其调用

5.字符串排序

下面开始正文:

1.cmp函数的用法(sort的高级用法)

struct zf
{
char a[21],b[21],c[21];
int abc; //abc记的是c
}data[501];

bool cmp(zf a,zf b)
{ //先b,再abc,再a
if(strcmp(a.b,b.b)!=0) //b不相同
return strcmp(a.b,b.b)<0; //按b的升序排
if(a.abc!=b.abc) //abc不相同
return a.abc>b.abc; //按abc降序排
return strcmp(a.a,b.a)<0; //按a字符串升序排
}

2.C++常用的头文件

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <algorithm>

3.打表算阶乘和斐波那契数列

1.阶乘的打表算法
long long data[21];
long long jc(int n)
{
if (n==0||n==1) return 1;
if (data
==0)
data
=n*jc(n-1);
return data
;

}

2.斐波那契的打表算法
long long data[51];
long long fblq(int n)
{
if (n==1||n==2) return 1;
else
{
if (data
==0)
data
=fblq(n-1)+fblq(n-2);
return data
;
}
}


4.一些简单的函数及其调用
这是个函数调用的专题,包括
1.斐波那契数列(非递归)
2.斐波那契数列(递归法)
3.计算阶乘(递归法)
4.计算阶乘(非递归法)
5.判断素数
6.求两数最大公约数
7.求两数最小公倍数
8.数组从小到大排序
9.判断闰年
10.计算一个整数各个位数字之和

1.斐波那契数列(非递归法)

int fbnq(int n)
{
int f=1,f1=1,f2=1,i;
for(i=3;i<=n;i++)
{
f=f1+f2;
f1=f2;
f2=f;
}return f;
}

2.斐波那契数列(递归法)

int fbnq(int n)
{
if(n==1||n==2)
return 1;
else
{
n=fbnq(n-1)+fbnq(n-2);
return n;
}
}

3.计算阶乘(递归法)

int jc(int i)
{
if(i==0 || i==1)
return 1;
return i*jc(i-1);
}

4.计算阶乘(非递归法)

int jcc(int n)
{
int i,b=1;
for(i=1;i<=n;i++)
{
b=b*i;
}
return b;
}

5.判断素数

#include <math.h>
int pdss(int n)
{
int i;
if(n==0||n==1)
return 0;
else
{for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}
}

6.求两数最大公约数

int gys(int a,int b)
{
if (b==0)
return a;
return gys(b,a%b);
}

7.求两数最小公倍数

int gys(int a,int b)
{
if (b==0)
return a;
return gys(b,a%b);
}
int gbs(int a,int b)
{
int c = gys(a,b);
return (a*b)/(c);
}

8. 数组中n个数从小到大的排序

void szpx(double a[],int n)
{
int i,j;
double t;
for(i=1;i<n;i++)
{
t=a[i];
for(j=i-1;j>=0;j--)
{ if(a[j]<=t)
break;
if(a[j]>t)
a[j+1]=a[j];
}
a[j+1]=t;
}
}

9.判断闰年
int pdrn(int a)
{
if((a%4==0&&a%100!=0)||a%400==0)
return 1;
else
return 0;
}

10.计算一个整数各个位数字之和
int gwzh(int n)
{
int a,sum=0;
while(n>0)
{
a=n%10;
n=n/10;
sum=sum+a;
}return sum;
}

void sort(char array[][3],int n)   //定义排序函数,3是单词长度适当替换

{

char temp[3];

int i,j,k;

for(i=0;i<n;i++)

{

k=i;

for(j=i+1;j<n;j++)

if(strcmp(array[k],array[j])>0)

k=j;

if(k!=i)

{

strcpy(temp,array[i]);   //字符串交换顺序

strcpy(array[i],array[k]);

strcpy(array[k],temp);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: