zoukankan      html  css  js  c++  java
  • 递归求最大公约数

    //递归求阶乘,代码简洁 
    #include<stdio.h>
    	long fact(long n)
    	{
    		return n==0?1:n*fact(n-1);//直接对应于阶乘函数的递归形式的数学定义
    	}
    	
    int main()
    {
    	long x;
    	scanf("%ld",&x);
    	printf("%ld",fact(x));
    	return 0;
    } 
    

      

    //递归求阶乘,繁琐的代码,考虑周全 
    #include <stdio.h> 
    int factorial(int n)
    {
        int result;
        if (n<0)           //判断例外
        {
            printf("输入错误!
    ");
            return 0;
        }
       else if (n==0 || n==1)
        {
            result = 1;  //回推墙
        }
       else
        {
        	 result = factorial(n-1) * n;  //递推关系,这个数与上一个数之间的关系。
        }
        return result;
    }
    
    int main()
    {
        int a;
    	scanf("%d",&a);
        printf("%d的阶乘=%d",a,factorial(a));
        return 0;
    }
    

      

    //递归试了好多次就是错。。。只能枚举了
    #include<stdio.h>
    
    int gcd( int m, int n)
    {
        int min=m<n?m:n;
        int i=min;
        if((m!=0&&n==0)||(m==0&&n!=0))
            {int a=m>n?m:n;
             return a;}
        else
            for(i;i>=1;i--)
                {if(m%i==0&&n%i==0)
                 return i;
                }
    }
    int main()
    {
        int m, n;
    /*
    while (~scanf("%d%d",&m,&n))
    看起来是C语言的
    ACM中比较常见,其他地方没见过这么写的
    功能是循环从输入流读取m和n 直到遇到EOF为止
    等同于while (scanf("%d%d",&m,&n)!=EOF)`    
    EOF不是特殊字符

    而是一个定义在头文件stdio.h的常量,一般等于-1。

    #define EOF (-1)

    */
    while(~scanf("%d %d",&m,&n))

    { if(!m&&!n)  return 0;
    /*!是非运算,!A 取A的相反。
    !的优先级大于 &&,也就是!先运算
    */
     printf("%d
    ", gcd( m, n) );
    }
    return 0; }

      

  • 相关阅读:
    linux查看端口
    linux下Git代码
    linux安装mysql
    pip工具更新及解决"No module named pip"问题
    demo-bootstrap实现滑动开关
    vue 随笔
    css 解决盒子移动鼠标丢失产生的抖动问题
    笔记-纯css实现select的placeholder
    笔记-移动端rem适配和解决安卓手机键盘唤起引起样式问题
    demo-tab切换
  • 原文地址:https://www.cnblogs.com/zdgmddzj/p/8446647.html
Copyright © 2011-2022 走看看