C语言程序设计上mooc答案 下载本文

内容发布更新时间 : 2024/12/27 14:41:56星期一 下面是文章的全部内容请认真阅读。

}

4.【中学】求最后3位数值(选做)

成绩 折扣 0 开启时间 2014年10月28日 星期二 10:45 0.8 折扣时间 2014年11月12日 星期三 10:45 关闭时间 2014年11月19日 星期三 10:45 允许迟交 否 小明在中学会求一个数的 n 次方了,但计算机还不会,请你来编写一个程序吧。由于计算机比较“笨”,所以我们编写程序的功能不用太强,只要能算出 a 的 n 次方的最后 3 位数就可以了。 输入:

a 和 n 的值。假设 a<=150 。 输出:

求 a 的 n 次方的最后 3 位数。

提示:再想一想,你的方法对吗?你用的是什么数据类型?

测试输入

期待的输出

时间限制

测试用例 1 测试用例 2 测试用例 3

1秒

64M

0

1秒

64M

0

以文本方式显示 1.

10 0?

以文本方式显示 1.

The last 3 numbers is 1.?

1秒

内存限制

64M

0 额外进程

以文本方式显示 1.

2 8?

以文本方式显示 1.

The last 3 numbers is 256.?

以文本方式显示 1.

100 10?

以文本方式显示 1.

The last 3 numbers is 000.?

Code:

#include

int main() {int a,b,d,c=1; scanf(\

if(b==0) c=1;

for(d=1;d<=b;d++)

{ c*=a; c=c00;} if(c==0)

printf(\

else {

printf(\

return 0;}

}第五周作业

1.锻炼身体吧

成绩 折扣 10 开启时间 2014年11月4日 星期二 07:50 0.8 折扣时间 2014年11月19日 星期三 07:50 关闭时间 2014年11月26日 星期三 07:50 允许迟交 否 题目描述:

沫沫,灰灰和渣渣去锻炼身体,如果对他们跑步的距离分别只计整数 a、 b、 c,由于他们身高的差距,造成了 a<=b<=c,并且渣渣跑了N米之后就再也跑不动了。但是,按照他们事先的约定: 只有当 c*c==a*a+b*b 时,他们的锻炼才有效果。

现在他们三个人想知道,如果渣渣的极限N已知,那么有多少种有锻炼效果的跑步方案(即a, b, c有多少种可能的取值)。 输入:

一个整数N,表示渣渣的体力极限, N <= 5000。 输出:

一个整数,代表他们跑步方案的个数。

Hint:对于输入N=5,有方案 a=3, b=4, c=5, 共一种。

测试输入 期待的输出 时间限制 内存限制 额外进程 测试输入 期待的输出 时间限制 内存限制64M 额外进程0 测试用例 1 以文本方式显示 以文本方式显示 1秒 1. 5? 1. 1? 测试用例 2 以文本方式显示 以文本方式显示 1秒 1. 22? 1. 6? 64M 0 Code:

#include int main() {

int a = 1,b = 1,c = 1,maxnum,count = 0; scanf(\ for(c = 1;c <= maxnum;c++) {

for(a = 1; a < c; a++ ) {

for(b = 1; b < c; b++) { if((c*c == a*a +b*b)&&(a <= b)) count++; } } }

printf(\ return 0; }

2.寻找特殊偶数

成绩 折扣 10 开启时间 2014年11月4日 星期二 08:00 0.8 折扣时间 2014年11月19日 星期三 08:00 关闭时间 2014年11月26日 星期三 08:00 允许迟交 否 背景

有一种特殊偶数,它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。

输入

所要寻找的四位偶数的范围。每组输入有两个数字:第一个数字是最小范围;第二个数字是最大范围。如果输入遇到0,输入结束。

输出

列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。

测试输入

期待的输出

时间限制

试以文本方式显示 用例 1

1. 2. 3.

3000 3020? 6040 6090? 0 0?

4. 1. 2. 3.

3012 3014 3016 3018 ? counter=4?

6042 6048 6052 6054 6058 6072 6074 6078 6082 6084 ? counter=10?

以文本方式显示

1

64内存限制

0 额外进程

秒 M

测以文本方式显示 试用例 2

1. 2. 3.

9 101? 87 -1? 0 0?

以文本方式显示 1. 2.

Error? Error?

1640

秒 M

Code:

#include int main() {

int maxnum, minnum, n, g, s, b, q, count = 0; while(1){

scanf(\

if(minnum == 0 && maxnum == 0) return 0;

if((minnum > 999 && minnum < 10000) && (maxnum > 999 && maxnum < 10000) && (maxnum >= minnum)) { for(n = minnum; n <= maxnum; n++) { if(n % 2 == 0){ q = n / 1000;

b = n % 1000 / 100; s = n % 100 / 10; g = n % 10; if(q != b && q != s && q != g && b != s && b != g && s != g) { count++; printf(\ \ } } } printf(\ printf(\ count = 0; } else printf(\ } return 0; }

3.求最小 m 值

成绩 折扣 10 开启时间 2014年11月4日 星期二 08:05 0.8 折扣时间 2014年11月19日 星期三 08:05 关闭时间 2014年11月26日 星期三 08:05 允许迟交 否 求满足下列不等式的最小 m。 1 + 2 + 3 + 4 + ...... + m ≥ n

例如:n=100,当 m =14 时,满足:1+2+3+4+...+13=91<100,而 1 +2+3+4+......+14=105>100。 输入:n 输出:m

测试输入 期待的输出 时间限制 内存限制64M 额外进程0 测试用例 1 以文本方式显示 以文本方式显示 1秒 1. 100? 1. 14? Code:

#include