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 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 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 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