C语言程序设计—北京理工大学MOOC提交作业(1)

内容发布更新时间 : 2024/12/22 20:45:44星期一 下面是文章的全部内容请认真阅读。

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 1. 10 0? 1. The last 3 numbers is 1.? 以文本方式显示 以文本方式显示 1秒 内存限制 64M 0 额外进程 测试用例 2 以文本方式显示 1. 2 8? 以文本方式显示 1. The last 3 numbers is 256.? 1秒 64M 0 测试用例 3 以文本方式显示 1. 100 10? 以文本方式显示 1. The last 3 numbers is 000.? 1秒 64M 0 Code: #include int main() {

int a, n, i, total = 1; scanf(\ if(n == 0) total = 1; for(i = 1; i <= n; i++) { }

total = total % 1000;

printf(\ return 0; }

total *= a;

第五周作业

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

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi