• 特殊数


    一、约瑟夫环

    1.数组解法

    int _tmain(int argc, _TCHAR* argv[])
    {
        int i, j;
        int a[N] = {0}; //表示N号人还在圈中
        int ptr = 0;    //标记当前数到位置的指针
        for (i = 0; i < N; i++)
        {
            for (j = 1; j < M; j++)
            {
                ++ptr %= N;
                while (a[ptr] == 1)
                    ++ptr %= N;
            }
            printf("%d
    ", ptr%N);
            a[ptr] = 1;
            ++ptr %= N;
            while (a[ptr]==1)
                ++ptr %= N;
        }
        return 0;
    }

    2.链表解法

    二、斐波那契数列

    1.递归解法

    1 typedef unsigned long ulong;
    2 
    3 ulong Fiblnacci(int n)
    4 {
    5     if (n <= 2)
    6         return 1;
    7     return Fiblnacci(n - 1) + Fiblnacci(n - 1);
    8 }

    2.非递归解法

    typedef unsigned long ulong;
    
    ulong Fiblnacci(int n)
    {
        ulong f1=1, f2=1, f3;
        int n = 1;
        scanf("%d",&n);
        if (n == 1)
            return f1;
        else if (n == 2)
            return f2;
        else if (n >= 3)
        {
            for (int i = 3; i < n; i++)
            {
                f3 = f1 + f2;
                f1 = f2;
                f2 = f3;
            }
        }
        return f3;
    }

    三、最大公约数

    1.辗转相除

    void swap(int&a, int&b)
    {
        int c = a;
        a = b;
        b = c;
    }
    int gcd(int a, int b)
    {
        if (a == 0)
            return b;
        if (b == 0)
            return a;
        if (a > b)
            swap(a,b);
        int c;
        for (c = a%b; c > 0; c = a%b)
        {
            a = b;
            b = c;
        }
        return b;
    }

    四、素数

    打印100以内的素数

    1.开根号法

     写一个函数找出一个整数数组中,第二大的数

     1 const int MINNUMBER =-32767 ;
     2 int find_sec_max( int data[] , int count)
     3 {
     4     int maxnumber = data[0] ;
     5     int sec_max = MINNUMBER ;
     6     for ( int i =1 ; i < count ; i++)
     7     {
     8         if ( data[i] > maxnumber )
     9         {
    10             sec_max = maxnumber ;
    11             maxnumber = data[i] ;
    12         }
    13         else
    14         {
    15             if ( data[i] > sec_max )
    16             sec_max = data[i] ;
    17         }
    18     }
    19     return sec_max ;
    20 }    
  • 相关阅读:
    表格边框
    vue路由守卫
    移动端专用css
    原生js写的的浏览器历史记录
    有趣
    表格边框
    路由
    php安装
    curl
    case when
  • 原文地址:https://www.cnblogs.com/SnailProgramer/p/4842856.html
Copyright © 2020-2023  润新知