主题:SOS!!!!I am going to die!!!
Hx
[专家分:0] 发布于 2005-07-09 22:03:00
昨日,老师出了一道超级难题(对于本人而言才是)来为难我这初学本语言的学生:
将1,2,3,4......2n 这几个数排成一个圈,使每相邻数之和为质数.
(n从键盘中输入)
例如:编完程序后,在运时程序时先输入2,则表示以下将要输入从1开始的四个
连续数字,现以输入1,2,3,4这四个连续数字为例,打印出以下方案:
1
2 4
3
--------------------------------------
(注:以下用中括号相括的文字为个人留言,与界线之上之题目之表述不为同一论述)
[求列位仁兄助我一番,好等我明日给老师一交代,否则我将会......]
[em6][em6][em6][em6][em6]
回复列表 (共4个回复)
沙发
Hx [专家分:0] 发布于 2005-07-09 22:27:00
救救我吧!!!‘救人一命胜造七级浮屠’啊!!!
‘助人为乐,功德无量’啊!!!您只许写出您的程序
啊!!!就能救人一命,助人而乐了。不管您所写的是
任何符号或是文字,都有可能为自己多积些阴德啊!!!
板凳
Hx [专家分:0] 发布于 2005-07-10 17:00:00
失败!!!真是可悲,今日早上竟在老师面前哑口无言,成为无所作为一个失败者!!!枉今生犯下了历史性的大错误,当初,不应该提早学习本语言......
3 楼
口口and枕头 [专家分:1550] 发布于 2005-07-10 20:37:00
哎~~~
多吸取教训,,,,,,临时抱佛脚是没有用的~~~
毕竟别人没有帮你的义务,要靠自己才行~~~~~~~~~~~
以后自己要多多努力才是~~
4 楼
kuuga [专家分:190] 发布于 2005-07-13 19:43:00
见你甘可怜,就成全一下你啦!给你一个程序:(毕竟我只是同情你,
因时间关系,所以随便写了一个尚未通过Fp和Tp运行的程序给你,你
自己以后好自为之);
var y,l:shortint;
z:array[1..100]of shortint;
hol:set of byte;
function t1(a:integer):boolean;
var b,c:integer;
m:boolean;
begin
m:=true;
for b:=2 to trunc(sqrt(a))do if a mod b=0 then begin
m:=false;
end;
if m then t1:=m;
end;
procedure t(k,p:integer;s:string);
var q:integer;
s2,s3:string;
begin
if(k=2*y-1)and(t1(z[p]+z[1]))and(hol=[1..2*y])then begin
hol:=[];
writeln('->1->',copy(s,1,length(s)-1));
halt;
end else begin
for q:=2 to 2*y+1 do begin
if k=0 then hol:=[];
if(k=2*y-1)and(not(t1(z[p]+z[1])))then hol:=[1..2*y];
if(q=2*y+1)then hol:=hol-[p];
if(p=2*y+1)then hol:=hol-[q];
if(t1(z[p]+z[q]))and(not(q in hol))and(p<2*y+1)and(q<2*y+1)then begin
hol:=hol+[q]+[p];
str(z[q],s2);
t(k+1,q,s+s2+'->');
end;
end;
end;
end;
begin
readln(y);
for l:=1 to 2*y do z[l]:=l;
t(0,1,'');
end.
我来回复