第十二周项目3-3:

问题及代码:

/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作    者:陈文青
*完成日期:2014年11月16日
*版 本 号:v1.0
*
*问题描述:编程序,用递归函数求出两个数的最大公约数。(包括编main函数,调用定义的递归函数)
*程序输入:两个整数,m,n
*程序输出:一个整数,表示m和n的最大公约数
*/
#include <iostream>
using namespace std;
int gys(int x, int y);             //自定义函数声明
int main()
{
    int m,n;
    cout<<"请输入两个整数:";
    cin>>m>>n;
    cout<<"它们的最大公约数为:";
    cout<<gys(m,n);                //自定义函数调用
    return 0;
}


int gys(int a, int b)
{
    int t,g;
    if (a < b)                     //a,b中取b为小的值
    {
        t=a;
        a=b;
        b=t;
    }
    if (b==0)                      //考虑其中一个值为0的时候
        g=a;
    else
        g=gys(b,a%b);               //递归
    return g;
}

运行结果:


知识点总结:

利用递归函数解决数学问题

学习心得:

一个成功的程序需要有严密的逻辑思维,例如这个程序,考虑a b的值的交换,考虑其中一个值为0的时候。然后在递归调用的时候一定要谨慎;

最后结合单步调试能使编程更加得心应手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值