一些基础的东西

本篇介绍:

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[n]==0)
      data[n]=n*jc(n-1);
    return data[n];    
       
}


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



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);

        }

    }

}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值