36 杀鸡用牛刀——要用递归啊
成绩: 5 / 折扣: 0.8
背景:
    哈哈!我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。
功能:
    求整数 n 到 m 区间的累加和,其中n<=m。
输入:
    区间的起始点n   区间的终止点m
输出:
    累加和
要求:
    使用递归算法完成。如此简单的题目当然要有隐含的测试用例啦,就3个,看看谁能猜出来。
 
测试输入
期待的输出
时间限制
内存限制
额外进程
测试用例 1
以文本方式显示
1.1 10
以文本方式显示
1.The sum from 1 to 10 is 55.c语言编写递归函数↵
1秒
64M
0
测试用例 2
以文本方式显示
1.10 15
以文本方式显示
1.The sum from 10 to 15 is 75.
1秒
64M
0
#include<stdio.h>
int sum(int a,int b)
{
    int result=0;
    if(b-a==1)
    {result=a+b;}
    else if(b==a)
    {result=a;}
    else
    {
        result=sum(a,b-2)+sum(b-1,b);
    }
    return result;
}
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("The sum from %d to %d is %d.\n",a,b,sum(a,b));
}
37 求最大公约数——递归
成绩: 5 / 折扣: 0.8
请使用递归算法计算正整数n和m的最大公约数GCD(n,m)。
            = m             当 m<=n 且 n mod m =0
GCD(N,M) = GCD(m,n)   当n<m时
                     = GCD(m, n mod m)     其他
输入:
        n和m
输出:
        n和m的最大公约数
 
测试输入
期待的输出
时间限制
内存限制
额外进程
测试用例 1
以文本方式显示
1.24 48
以文本方式显示
1.24
1秒
64M
0
测试用例 2
以文本方式显示
1.13 15
以文本方式显示
1.1
1秒
64M
0
#include<stdio.h>
int f(long a,long b)
{
    long result;
    long temp=a%b;
    if(temp==0)
        result=b;
    else
        result=f(b,temp);
    return result;       
}
int main()
{
    long a,b;
    scanf("%ld%ld",&a,&b);
    long temp;
    if(a<b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    printf("%ld\n",f(a,b));
}
38 回文字符串——递归
成绩: 5 / 折扣: 0.8
    有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如LeveL就是一个回文字符串。
输入:
          字符串
输出:
          Yes或者No
说明:
          如输出Yes,说明输入的字符串是一个回文字符串
          输出No,说明输入的字符串不是一个回文字符串
          请使用递归算法实现。
 
测试输入
期待的输出
时间限制
内存限制
额外进程
测试用例 1
以文本方式显示
1.LeveL
以文本方式显示
1.Yes
1秒
64M
0
#include<stdio.h>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。