广告Logo
目录 综合报道 软件世界 硬件周刊 大众网络 OA专刊 游戏广场 评测与市场
当前位置:电脑报电子版 > 1999 年 > 36 期 > 软件世界 > 9908请你编程

《 9908请你编程 》

  大家好!《请你编程》又与你们见面了。本栏目得到了广大朋友的关心和支持,我在这里表示衷心的感谢。《请你编程》是一个读者朋友直接参与的栏目,是一个体现自我的园地,希望有编程愿望的朋友,无论是编程高手,还是初学者都能参与进来,我们将会认真对待每一份作品。下面请看本期山东读者刘文臣的程序。

9908请你编程解题思路

  本程序采用静态链表来实现。
  首先定义一个较大的数组,数组中每个元素(站点)由两部分组成,一部分是每个人的编号,另一部分是“指针”,用整型数据表示下一个人所在数组中的下标。程序采用穷尽搜索法,C从2开始,若M号(萧峰)出列,则C值增大1,再行判断,直到找出C值为止。主要算法如下:
  1.循环读取Love.txt中数为M、N赋值;
  2.若萧峰为最后一名(M=N)则C值为1,输出来并转向1;否则转入下一步;
  3.循环求C值,C从2开始,步步增大。若M能被C整除,M号必出列,故先确定C从2开始且不能被M整除的数;
  4.静态链表初始化,即将N个人围成一圈,然后又进入一循环,数数退圈,若中途退出萧峰则退出循环,C值增加,转到3处,若留下萧峰,则打印C值,退出3的循环转至1处。
  源程序
#include <stdio.h>
#define MAX 1500
typedef struct
{int num;
int next;
}circle;
circle A[MAX];/*定义一个较大的数组*/
int M,N;
main()
{ int c,i,count;
circle *p,*q;
FILE *fp;
if((fp=fopen(″love.txt″,″r″))==NULL)
{printf(″\nCan't open file love.txt!″);
exit(0);}
fscanf(fp,″%d%d″,&N,&M);
for(;M!=0&&N!=0;fscanf(fp,″%d%d″,&N,&M))
if(M==N){c=1;printf(″\n%d″,c);continue;}/*萧峰在最后,c值为1*/
else
for(c=2;;c++)
{ while(M%c==0) c++;/*M值首先不能被c所整除*/
<N;i++)/*静态链表初始化,使N个人围成一圈*/> for(i=1;ibr> {A[i-1].num=i;A[i-1].next=i;}
A[i-1].num=i;A[i-1].next=0;/*最后一个人指向第一个人,第一个人下标为0*/
p=A;count=0;i=1;
<N-1)/*只要还没剩下最后一个人,则循环*/> while(countbr> {if(i= =c-1)/*数到c-1时,便删除下一个人*/
{q=A+p->next;
if(q->num==M) break;/*若是萧峰出列,则退出循环,c值增加,重新测试*/
else{p->next=q->next;i=0;count++;}
}
p=A+p->next;
i++;
}
if(count= =N-1){printf(″\n%d″,c);break;}/
萧峰没有退出,则打印出c值,读M,N值*/
}
fclose(fp);
}

9910请你编程题目

  在埃及,考古学家又发现了一座金字塔。这座金字塔的结构是这样的:从它的纵截面看,金字塔分成好多小房间:(如图所示)自上往下,自左往右,每个小房间都有一个唯一的编号。而据一个古老的传说:在这个金字塔的几个房间里,存放着一批金银珠宝。但是,这些房间的安排是有规律的:
  以这些房间为顶点,可以构成一个正三角形或者平行四边形或正六边形。例如:房间1、2、3可以构成一个正三角形,所以它们可能是藏宝地点。而房间1、2、3、4不能构成任何正三角形或者平行四边形或正六边形,所以它们不可能是藏宝地点。考古学家手上已经有好几组关于藏宝地点的数据。现在就请你编一个程序,帮考古学家算算看,哪些是假的,哪些可能是真的。
  输入数据文件为pyramid.txt,具体格式为:第一行为一个整数N,表示有N组输入数据。以下为N行,每行包括最多6个整数,表示一组藏宝地点的数据(这些整数之间用空格分开,而且最大为32767)。输出到屏幕上去的结果为N行,每行为一个单词“TRUE”或“FALSE”,表示这组数据是否可能为正确的藏宝地点。
输入范例:
3
1 2 3
1 2 3 4
5 4 13 9 12 7
输出范例:
TRUE
FALSE
TRUE
本期题目由上海的oldbug提供。
  本期获奖者名单
  邢 践(辽宁) 胡立军(黑龙江) 叶立超(北京)
  梁远海(福建) 刘晓锋(重庆) 石万元(重庆)
  王良春(福建) 龚 超(湖南) 林基峰(福建)
  马拥军(浙江)
  每位获奖者将获得苦丁香公司提供的光盘一张。
下载本期推荐软件页 首

  《电脑报》版权所有,电脑报网站编辑部设计制作发布