好文档 - 专业文书写作范文服务资料分享网站

2017 mooc C语言 第七周(2) 答案

天下 分享 时间: 加入收藏 我要投稿 点赞

递归法计算游戏人员的年龄

题目内容:

有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,…..,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大

年纪。

递归函数原型:unsigned intComputeAge(unsigned int n);

提示:

计算年龄的递归公式为:

输入格式: “%u”

输出格式: “The person’s age is %u\\n”

输入样例1:

5↙ 输出样例1: The_person’s_age_is_18

输入样例2:

10↙ 输出样例2: The_person’s_age_is_28

#include

unsignedintComputeAge(unsignedint n);

intmain()

{

unsignedint age; scanf(\, &age);

printf(\, ComputeAge(age));

return0;

}

unsignedintComputeAge(unsignedint n)

{ if(n == 1) return10;

else {

returnComputeAge(n - 1)+2;

} }

? 1

递归法计算两个数的最大公约数

题目内容:

利用最大公约数的性质计算。对正整数a和b,当a>b时,若a中含有与b相同的公约数,则a中去掉b后剩余的部分a-b中也应含有与b相同的公约数,对a-b和b计算公约数就相当于对a和b计算公约数。反复使用最大公约数的上述性质,直到a和b相等为止,这时,a或b就是它们的最大公约数。这三条性质,

也可以表示为:

性质1 如果a>b,则a和b与a-b和b的最大公约数相同,即Gcd(a, b) = Gcd(a-b,

b)

性质2 如果b>a,则a和b与a和b-a的最大公约数相同,即Gcd(a, b) = Gcd(a,

b-a)

性质3 如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a, b) = a = b

程序运行结果示例1: Input a,b:16,24↙

8

程序运行结果示例2:

Input a,b:-2,-8↙ Input error!

输入提示信息:”Input a,b:”

输入格式:”%d,%d”

输出格式:

输出最大公约数:”%d\\n” 输入错误提示信息:”Input error!\\n”

#include

intGcd(inti, int j);

intmain()

{ int a, b; int c;

printf(\); scanf(\%d,%d\, &a, &b);

c = Gcd(a, b); if (c == -1)

{

printf(\);

} else {

printf(\%d\\n\, c);

} return0;

}

intGcd(inti, int j)

{

if (i<= 0 || j <= 0)

{ return -1;

} else { if(i == j)

{ returni;

}

elseif (i> j)

{

returnGcd(i - j, j);

} else {

returnGcd(i, j - i);

} }

寻找中位数v1.0

题目内容:

编写一个函数返回三个整数中的中间数。函数原型为:int mid(int a, int b, int c);

函数功能是返回a,b,c三数中大小位于中间的那个数。

输入格式: “%d%d%d” 输出格式:”The result is %d\\n”

输入样例1: 12 6 18↙ 输出样例1: The_result_is_12 输入样例2: -9 7 -2↙ 输出样例2: The_result_is_-2

#include

intmid(int a, int b, int c);

intmain()

{ inti, j, k;

scanf(\%d%d%d\,&i, &j, &k);

printf(\%d\\n\, mid(i, j, k));

return0;

}

intmid(int a, int b, int c)

{

if((a < b && b < c) || (a > b && b > c))

{ return b;

} else {

returnmid(b, c, a);

} }

? 1

还原算术表达式

题目内容: 的值要求从键盘输入。

编写程序求以下算式中XYZ的值,其中两数XYZ与YZZ相加的和n(99< n< 1000)

程序运行结果示例1: Input n(n<1000):

532↙ X=3,Y=2,Z=1 程序运行结果示例2: Input n(n<1000):

977↙ Invalid

输入提示:”Input n(n<1000):\\n”

输入格式: “%d”

输出格式:”X=%d,Y=%d,Z=%d\\n” 计算不成功(无解)的输出提示:”Invalid\\n”

特别注意 x > 5 or y > 5 or z > 5;

2017 mooc C语言 第七周(2) 答案

递归法计算游戏人员的年龄题目内容:有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,…..,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大年纪。递归函数原型:unsignedintComputeAge(unsi
推荐度:
点击下载文档文档为doc格式
6kl68279wb4c2db011p1797950lpza00fdj
领取福利

微信扫码领取福利

微信扫码分享