第七次课

83 阅读2分钟

namespace test1
{
    class Programe8
    {

        /*        static bool isPrme(int num1)
                {
                    for (int i = 2; i < num1; i++)
                    {
                        if (num1 % i == 0)
                        {
                            return false;
                        }
                    }
                    return true;
                }*/
## //2.定义一个函数getDivisor,用来取得一个数字的所有因子,把所有因子返回
        /*        static void getDivisor(int num)
                {
                    for (int i = 1; i <= num; i++)
                    {
                        if (num % i == 0)
                        {
                            Console.WriteLine(i);
                        }
                    }
                }*/
## // 3函数重载 两个相同的名称函数 可以更具输入的类型 进行不同功能的实现、


## // **4递归**
        //有关系式1 * 1+2 * 2+3 * 3+...k * k<2000,
## //编一个程序,求出满足此关系的**k的最大值**,利用递归和循环解决这个问题
        // 关系式: f(k-1)= 1*1+2*2+。。。(k-1)*(k-1)  f(k)= 1*1+2*2+。。。(k-1)*(k-1)+k*k=f(k-1)+k*k
        // 出口: n==1 出口 
            
        static int printNum(int n)
        {
            if (n == 1)
            {
                return 1;
            }
            return printNum(n - 1)+n*n;
        }

        
        /* 提示:已知112358132134...我们发现后面数是前两个数的和,我们称这种数列为斐波那契数列
### 题目要求:输入n,求出n项的斐波那契数列(2)
        例:输入4输出1123*/
        //f(0)=f(1) f(2)=f(0)+f(1) f(3)=f(1)+f(2) 关系式: f(n)=f(n-1)+f(n-2) 出口f(0)=f(1)=1
        static int   feibo(int num)
        {
            if (num == 1 || num == 2)
            {
                return 1;
            }
            return feibo( num - 1) +feibo( num- 2);
            
        }

### //(3)猴子桃子
        //求关系式 f(1)=Nf(2)=f(1)/2-1 f(3)=f(2)/2-1 f(n)=f(n-1)/2-1 f(n-1)=(f(n)+1)*2
        //出口 f(10)=1f(n)? f(n+1)  f(n)=(f(n+1)+1)*2
        static int getP(int day)
    {
         if (day==10) return 1;
        return (getP(day + 1) +1)*2;
    }


        static void Main(string[] args)
        {

            //static修饰符表示静态函数void表示返回值类型如果没有返回值,返回值为空那么类型就是void 也可以是其他bool int string等

            /*            Max(1);
                        static int Max(int numl, int num = 2) //函数名(形参1,形参2...)
                        {
                            Console.WriteLine(num);
                            return 2;//return下面的代码是不会执行*/

            /*                Console.WriteLine("输入一个数字");
                        int num =Convert.ToInt32(Console.ReadLine());   
                        getDivisor(num);*/

            // 递归斐波那契;
            /*            Console.WriteLine("输入num");
                        int num = Convert.ToInt32(Console.ReadLine());
                        for(int i = 1; i <=num; i++)
                        {
                            Console.Write(feibo(i)+" ");
                        }
                        Console.WriteLine(" ");*/


            // 递归桃子 
            /*        for (int i = 1; i < 11; i++)
                    {
                        Console.WriteLine("第{0}天吃了{1}个桃子", i, getP(i));
                    }
        */
            // 递归输出最大数

            int k = 1;
            while (printNum(k) <= 2000)
            {
                k++;
            }
        Console.WriteLine("满足条件最大的k是"+(k-1));

        }
    }
    }