C语言作业文档格式.docx
《C语言作业文档格式.docx》由会员分享,可在线阅读,更多相关《C语言作业文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
L'
x0=-x0;
R'
x0=2*wide-x0;
}
printf("
%.4lf\n"
sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)));
return(0);
}
20.整数问题
成绩:
0/折扣:
0.8
请求输出满足以下条件的n位正整数的个数:
要求该n位整数的从高位开始前1位可以被1整除,该n位整数前2位可以被2*2整除,该整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。
即该整数前k位都可被k平方整除。
例如:
n=1,则符合条件的1位正整数为1~9,输出答案9。
n=2,符合条件的正整数为:
12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,则输出答案22。
当n=4时,2432就是一个符合题意的整数。
第一位2可以被1整除;
前2为24可以被4整除;
前3位243可以被9整除;
整个4位2432可以被16整除。
输入:
n(0<
=n<
9)
输出:
符合该条件的n位正整数的数量
(本题目为软件学院2007年保研学生初试上机试题。
本题可以不用数组)
测试输入
期待的输出
时间限制
内存限制
额外进程
测试用例1
以文本方式显示
1.1↵
1.9↵
无限制
64M
0
测试用例2
1.2↵
1.22↵
测试用例6
1.8↵
1.0↵
思路一:
做9个数组,第一个数组为1-9,从n=2开始,将上一组的每个数乘10加0-9,验算得到的数是否是n^2的整数倍,是则存入当前数组。
完成后第n个数组的长度即是所求。
思路二:
直接数完9组数据,做成映射表。
1,2,3,4,5,6,7,8,9共9个
12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92共22个
126,162,207,243,288,324,360,369,405,441,486,522,567,603,648,684,720,729,765,801,846,882,927,963共24个
1264,2432,2880,3248,3600,3696,4416,4864,6032,6480,6848,7200,7296,8016,8464,9632,共16个
24325,28800,36000,60325,64800,72000,96325,共7个
243252,288000,360000,603252,648000,720000,963252,共7个
6480005,共1个
n=8,9时个数为0
则建立数组a[9]={9,22,24,16,7,7,1,0,0},输入n则直接输出数组的第n个值即可
注意,如果数组计数从0开始,则输入n要输出a[n-1]
voidmain()
{intn;
n<
9;
scanf("
%d"
n);
{if(n==1)
printf("
9\n"
);
{if(n==2)
22\n"
{if(n==3)
24\n"
{if(n==4)
16\n"
{if((n==5)||(n==6))
7\n"
{if(n==7)
1\n"
{if((n==8)||(n==0))
0\n"
H5铺地板(选作)
5/折扣:
背景:
你是一名室内装潢工程队的配料员。
你的伙伴们喜欢采用“之”字型的方式铺大理石地砖,图案如下:
1
2
6
7
15
3
5
8
14
16
4
9
13
17
22
10
12
18
21
23
11
19
20
24
25
学了C语言以后,你决定编写一个程序,帮助你的同伴生成这样的图形。
方阵N的大小。
输出
方阵。
1.5↵
1.
1
2
6
7
15↵
2.
3
5
8
14
16↵
3.
4
9
13
17
22↵
4.10
12
18
21
23↵
5.11
19
20
24
25↵
1秒
1.3↵
6↵
7↵
9↵
测试用例5
15
16
28
29
45↵
27
30
44
46↵
26
31
43
47
60↵
25
32
42
48
59
61↵
33
41
49
58
62
71↵
6.21
23
34
40
50
57
63
70
72↵
7.22
35
39
51
56
64
69
73
78↵
8.36
38
52
55
65
68
74
77
79↵
9.37
53
54
66
67
75
76
80
81↵
#defineN50
#include<
main()
{
intc,d,b,h,i,j,n,a[N][N];
b);
if(b==1)printf("
%d\n"
b);
else{
b;
for(j=0;
j<
j++)
{if(i+j<
b)
{d=((i+j)*(j+i+1))/2;
if((i+j)%2==0)a[i][j]=d+j+1;
elsea[i][j]=d+1+i;
if(i+j>
=b)
{c=0;
h=i+j-b;
for(n=b-1;
h>
0;
n--,h--)
c=c+n;
d=(b+1)*b/2+c;
if((i+j)%2==0)a[i][j]=d+b-i;
elsea[i][j]=d+b-j;
}
{for(j=0;
b-1;
j++)
if(a[i][j]<
=9)printf("
%d"
a[i][j]);
elseprintf("
%d"
%d\n"
}
H8邮票组合(选作)
0.9
我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。
现在,邮局有4种不同面值的邮票。
在每个信封上最多能贴5张邮票,面值可相同,可不同。
四种邮票的面值。
用这四种面值组成的邮资最大的从1开始的一个连续的区间。
说明:
如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。
名词解释:
邮资:
就是你寄东西需要花多少钱。
邮票面额:
是由国家发行的具有固定价格的花纸片,被称为邮票。
如果你寄东西,邮局称了重量,告诉你要240分。
这样你就要贴邮票了。
如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:
采用3张80分的可以凑出240分;
或者24张10分的凑起来240分也可以。
显然不同邮票的组合都可以得到同样一种邮资。
1.1
12↵
1.The
max
is
46.↵
intneng(inta[],intmax)
inti,j,k,m,n;
intsum;
5;
i++)
for(k=0;
k<
k++)
for(m=0;
m<
m++)
for(n=0;
n++)
sum=a[i]+a[j]+a[k]+a[m]+a[n];
if(sum==max)return1;
return0;
voidmain()
inta[5],i;
intmax=0;
a[4]=0;
%d%d%d%d"
a[0],&
a[1],&
a[2],&
a[3]);
while
(1)
{
if(neng(a,max))
max++;
elsebreak;
Themaxis%d.\n"
max-1);
H6晕(选作)
看着这样的“回”形图案你晕吗?
让我们不用数组,来做出它。
n。
正方形的边长
边长为n的数字回形方阵。
3↵
4↵
5↵
1.4↵