回 帖 发 新 帖 刷新版面

主题:SOS!!!!I am going to die!!!

昨日,老师出了一道超级难题(对于本人而言才是)来为难我这初学本语言的学生:
     将1,2,3,4......2n 这几个数排成一个圈,使每相邻数之和为质数.
(n从键盘中输入)
例如:编完程序后,在运时程序时先输入2,则表示以下将要输入从1开始的四个
连续数字,现以输入1,2,3,4这四个连续数字为例,打印出以下方案:
     1
    2 4
     3
--------------------------------------
(注:以下用中括号相括的文字为个人留言,与界线之上之题目之表述不为同一论述)

[求列位仁兄助我一番,好等我明日给老师一交代,否则我将会......]
     [em6][em6][em6][em6][em6]

回复列表 (共4个回复)

沙发

救救我吧!!!‘救人一命胜造七级浮屠’啊!!!
‘助人为乐,功德无量’啊!!!您只许写出您的程序
啊!!!就能救人一命,助人而乐了。不管您所写的是
任何符号或是文字,都有可能为自己多积些阴德啊!!!

板凳

失败!!!真是可悲,今日早上竟在老师面前哑口无言,成为无所作为一个失败者!!!枉今生犯下了历史性的大错误,当初,不应该提早学习本语言......

3 楼

哎~~~

多吸取教训,,,,,,临时抱佛脚是没有用的~~~

毕竟别人没有帮你的义务,要靠自己才行~~~~~~~~~~~

以后自己要多多努力才是~~

4 楼

见你甘可怜,就成全一下你啦!给你一个程序:(毕竟我只是同情你,
因时间关系,所以随便写了一个尚未通过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.

我来回复

您尚未登录,请登录后再回复。点此登录或注册