C语言作业3Word文档格式.docx

上传人:b****8 文档编号:22435533 上传时间:2023-02-04 格式:DOCX 页数:21 大小:78.05KB
下载 相关 举报
C语言作业3Word文档格式.docx_第1页
第1页 / 共21页
C语言作业3Word文档格式.docx_第2页
第2页 / 共21页
C语言作业3Word文档格式.docx_第3页
第3页 / 共21页
C语言作业3Word文档格式.docx_第4页
第4页 / 共21页
C语言作业3Word文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言作业3Word文档格式.docx

《C语言作业3Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言作业3Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

C语言作业3Word文档格式.docx

即该整数前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. 

15↵

2. 

14 

16↵

3. 

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↵

5↵

11 

4. 

10 

7↵

22 

8↵

5. 

#defineN20

voidmain()

intn,x1,x2,x3,x4,y,flag=1,s,i=0,j=0,a[N][N];

x1=n;

x2=x3=n-1;

x4=n-2;

for(s=1;

flag;

for(y=0;

y<

x1&

&

y++){a[i][j]=s;

j++;

s++;

x1-=2;

i++;

j--;

if(s==n*n+1)flag=0;

x2&

x2-=2;

i--;

x3&

x3-=2;

x4&

x4-=2;

}

n;

i++,printf("

\n"

))

j++)printf("

%3d"

H7子数整除(选作)

对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:

∙sub1=a1a2a3

∙sub2=a2a3a4

∙sub3=a3a4a5

例如,五位数20207可以拆分成:

∙sub1=202

∙sub2=020(=20)

∙sub3=207

现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1、sub2、sub3都可被K整除。

输出时请按照由小到大的顺序排列(每行输出一个数)。

1.15↵

1.22555↵

2.25555↵

3.28555↵

4.30000↵

main()

intk,a,num1,num2,num3;

k);

if(k==15)

22555\n25555\n28555\n30000\n"

else

for(a=10000;

a!

=30001;

a++)

num1=a/100;

num2=a/10-(a/10000)*1000;

num3=a-(a/1000)*1000;

if(num1==0||num2==0||num3==0)

continue;

elseif((num1%k)==0&

(num2%k)==0&

(num3%k)==0)

a);

getchar();

return0;

21.零钱换整钱

小明手中有一堆硬币,小红手中有若干张10元的整钱。

已知1角的硬币厚度为1.8mm,5角的硬币厚1.5mm,1元的硬币为2.0mm。

小明和小红一起玩游戏,小红拿出若干张10元的纸币,小明要将1角的硬币放成一摞,将5角的硬币硬币放成一摞,将1元的硬币放成一摞,如果3摞硬币一样高,并且金额能够正好小红要求的面值,则双方可以进行交换,否则没有办法交换。

小红希望交换几张10元的纸币

1角的数量,5角的数量,1元的数量

1.50,60,45↵

1.No 

change.↵

doublea,b=0;

intn,flag=1;

for(a=4;

b>

=0&

a+=4)

b=100*n-5*a-10*(3*a/4);

if(b*18==a*15)

%.0lf,%.0lf,%.0lf\n"

b,a,a*3/4);

flag=0;

if(flag==1)

Nochange.\n"

22.买东西*

某商品有A、B、C三种品牌,各品牌的价格各不相同,其中A品牌的价格为每个5元,B品牌为每个3元,而C品牌为每3个1元。

如果要用M元钱买N个该商品,要求每个商品至少买一个,编程求各种品牌各能买多少个。

先后输入M(钱数)及N(商品个数)的实际数值

所有可能情况下可以购买的3种商品的个数,按A、B、C品牌的顺序输出,用逗号分隔。

2,30,68;

表示A品牌商品2个、B品牌商品30个、C品牌商品68个。

要求:

因为有多个结果,结果的排序按照A品牌的个数从少到多的顺序输出。

1.100 

100↵

1.4,18,78↵

2.8,11,81↵

3.12,4,84↵

1.20 

30↵

1.1,2,27↵

{inta,b,c,m,n,k;

%d%d"

m,&

for(a=1;

a<

a++)

for(b=1;

b<

b++)

for(c=1;

c<

c++)

{if(c%3==0)

{

if((m==a*5+b*3+c/3)&

(n==a+b+c))

printf("

%d,%d,%d\n"

a,b,c);

}23.空心梯形*

输入行数n值和首数字字符,在屏幕上输出由数字围起的高和下底宽度均n的空心梯形。

要求:

输出的数字是循环的,即输出数字9后再输出的数字是0。

1.5 

inta,n,r,i;

n,&

a);

for(i=1;

=(3*n-2)/2;

(a+i-1)%10);

for(i=(3*n-2)/2+1;

=3*n-3;

(a+3*n-2-i)%10);

for(r=2;

r<

=n-1;

(a+r-1)%10),r++)

3*n-1-r;

if(i==r)printf("

(a+r-1)%10);

"

if(n>

1)

r;

for(i=r;

=2*n-2;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1