free pascal

2、1267*1267=1605289,表明等式右边是一个七位的完全平方数,而这七个数字互不相同。编程求出所有这样的七位数。
3、一个素数,去掉最高位,剩下的数仍是素数;再去掉剩下的数的最高位,余留下来的数还是素数,这样的素数叫纯粹素数。求所有三位数的纯粹素数。
4、自然数4,9,16,25等叫做完全平方数,因为22 =4, 32 =9, 42 =16,52 =25, 当某一对自然数相加和相减, 有时可各得出一个完全平方数。
例如: 8与17这对自然数: 17+8=25 17—8= 9
试编程,找出所有小于100的自然数对,当加和减该数对时,可各得出一个完全平方数。
5、求数字的乘积根。正整数的数字乘积这样规定:这个正整数中非零数字的乘积。例如整数999的数字乘积为9*9*9,得到729;729的数字乘积为7*2*9,得到126;126的数字乘积为1*2*6,得到12;12从数字乘积为1*2,得到2。如此反复取数字的乘积,直至得到一位数字为止。999的数字乘积根是2。编程输入一个长度不超过100位数字的正整数,打印出计算数字乘积根的每一步结果。输出格式如下:
(N=3486784401)
3486784401
516096
1620
12
2
6、 有一组13个齿轮互相啮合,各齿轮啮合的齿数依次分别为6,8,9,10,12,14,15,16,18, 20,21,22,24, 问在转动过程中同时啮合的各齿到下次再同时啮合时,各齿轮分别转过了多少圈?
7、节目主持人准备从N名学生中挑选一名幸运观众,因为大家都想争当幸运观众,老师只好采取这样的办法:全体同学排成一列,由前面往后面依顺序报数1,2,1,2,…,报单数的同学退出队伍,余下的同学向前靠拢后再重新由前往后1,2,1,2,…报数,报单数者退出队伍,如此下去最后剩下一人为幸运观众。编程找出幸运观众在原队列中站在什么位置上?(N由键盘输入,N < 255)。
8、输入50个学生的某门课程的成绩,打印出低于平均分的同学号数与成绩。
9、国际象棋盘中,第1格放1粒米,第2格放2粒米,第3格放4粒米,第4格放8粒米,第5格放16粒米。。。,问:16个格子总共可以放多少粒米?
10、输入一个不大于32767的正整数N,将它转换成一个二进制数,例如:
输入:100
输出:1100100
11、猴子选大王:有N只猴子围成一圈,每只猴子各一个从1到N中的依次编号,打算从中选出一个大王;经过协商,决定出选大王的规则:从第一个开始循环报数,数到M的猴子出圈,最后剩下来的就是大王。要求:从键盘输入N、M,编程计算哪一个编号的猴子成为大王
样例:
输入:7 3
输出:4
输入:5 2
输出:3
待解:
输入:999 15
输出:?

习题5.1
1.裴波那契数列:数列1、1、2、3、5、8、13、21…称为裴波那契数列,它的特点是:数列的第一项是1,第二项也是1,从第三项起,每项等于前两项之和。编程输入一个正整数N,求出数列的第N项是多少?(N不超过30)。
program Project1;
VAR
a:array[1..30] of longint;{建立一个1-30的数组}
i,n:longint;{设置两个变量}
begin
readln(n);{输入数组中第几个数(不超过30)}
a[1]:=1;{第一个数为1}
a[2]:=1;{第二个数也为1}
for i:=3 to n do{从第三个数开始到N(30)做循环(i为1-30中任意一数)}
begin
a[i]:=a[i-1]+a[i-2];{i等于i前面一个数加前面第二数的和}
end;
write(a[n]);{打印输入的数}
readln;
readln;
end.

2.下面的竖式是乘法运算,式中P表示为一位的素数,编程输出此乘法竖式的所有可能方案。

3.节目主持人准备从N名学生中挑选一名幸运观众,因为大家都想争当幸运观众,老师只好采取这样的办法:全体同学排成一列,由前面往后面依顺序报数1,2,1,2,…,报单数的同学退出队伍,余下的同学向前靠拢后再重新由前往后1,2,1,2,…报数,报单数者退出队伍,如此下去最后剩下一人为幸运观众。编程找出幸运观众在原队列中站在什么位置上?(N由键盘输入,N < 255)。
program Project1;
var
a:array[1..225] of boolean; {建立一个1-225的数组}
n,i,j,b,c:longint;{ b为个数,c为现在所加到的数,i为数量}
begin
read(n); {输入总数(不超过225)}
fillchar(a,sizeof(a),true);{把所有值都赋为真值}
repeat
i:=0;
b:=0;
while i<n do
begin
inc(i);{累加i}
if a[i]=true then begin inc(j); c:=i; if j mod 2<>0 then begin a[i]:=false; end; inc(b);end;
{如果i为真,则累加j。(J为1)C和i交换变量。如果j除以2不等于0,则这些数都赋予假值。累加b}
end;
until b=1;{直到b为1}
writeln(c);{打印c}
readln;
readln;
end.

4. 1267*1267=1605289,表明等式右边是一个七位的完全平方数,而这七个数字互不相同。编程求出所有这样的七位数。

program ex1;
const a:array[0..9]of string=('0','1','2','3','4','5','6','7','8','9');
var i,j,l:longint; s:string;
begin
for i:=1000 to 3162 do
begin
l:=0;
str(i*i,s);
for j:=0 to 9 do
if pos(a[j],s)>0 then inc(l);
if l=7 then write(i*i:8);
end;
readln;
readln;
end.
5. 校女子100米短跑决赛成绩如下表,请编程打印前八名运动员的名次、运动员号和成绩。(从第一名至第八名按名次排列)
运动员号 017 168 088 105 058 123 142 055 113 136 020 032 089 010
成绩(秒) 12.3 12.6 13.0 11.8 12.1 13.1 12.0 11.9 11.6 12.4 12.9 13.2 12.2 11.4
program Project1;
const
n:longint=14;
VAR
a:array[1..14] of real;
b:array[1..14] of longint;
c:array[1..14] of string;
i,j:longint;
t:real;
s:string;
begin
for i:=1 to n do
read(b[i]);
readln;
for i:=1 to n do
read(a[i]);
for i:=1 to n do
str(b[i],c[i]);
for i:=1 to n-1 do
for j:=1 to n-i do
begin
if a[j]<a[j+1] then begin
t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t;
s:=c[j]; c[j]:=c[j+1]; c[j+1]:=s;
end;
end;
for i:=1 to 8 do
writeln(i,' ',c[i],' ',a[i]:0:1);
readln;
readln;
end.
6. 求数字的乘积根。正整数的数字乘积这样规定:这个正整数中非零数字的乘积。例如整数999的数字乘积为9*9*9,得到729;729的数字乘积为7*2*9,得到126;126的数字乘积为1*2*6,得到12;12从数字乘积为1*2,得到2。如此反复取数字的乘积,直至得到一位数字为止。999的数字乘积根是2。编程输入一个长度不超过100位数字的正整数,打印出计算数字乘积根的每一步结果。输出格式如下:
(N=3486784401)
3486784401
516096
1620
12
2

rogram ex2;
var i,j,l:longint; s:string;
begin
readln(s);
writeln(s);
while length(s)<>1 do
begin
l:=1;
for i:=1 to length(s) do
begin
val(s[i],j);
if j<>0 then
l:=l*j;

end;
writeln(l);
str(l,s);
end;
readln;
readln;
end.

7. 有一组13个齿轮互相啮合,各齿轮啮合的齿数依次分别为6,8,9,10,12,14,15,16,18, 20,21,22,24, 问在转动过程中同时啮合的各齿到下次再同时啮合时,各齿轮分别转过了多少圈?
program Project1;
const
a:array[1..13] of longint=(6,8,9,10,12,14,15,16,18,20,21,22,24);
var
b,i,j:longint;
begin
repeat
j:=0;
inc(b);
for i:=1 to 13 do
if b mod a[i]=0 then inc(j);
until j=13;
for i:=1 to 13 do
writeln(b div a[i]);
readln;
readln;
end.

8. 集合M的元素的定义如下:
(1) 数1属于M;
(2) 若X属于M, 则A=2X+1, B=3X+1, C=5X+1, 也属于M;
(3) 再没有别的数属于M。(M={1,3,4,6,7,9,10,13,15,16...,如果M中的元素是按递增次序排列的,求出其中的第201,202和203个元素。

program ex3;
var i,j,t:longint; a:array[1..210]of longint;
begin
a[1]:=1;
i:=1;
j:=1;
while j<203 do
begin
a[j+1]:=a[i]*2+1;
a[j+2]:=a[i]*3+1;
a[j+3]:=a[i]*5+1;
inc(j,3);
inc(i);
end;
for i:=1 to 203 -1 do
for j:=203 downto i+1 do
if a[j-1]>a[j] then
begin t:=a[j-1];a[j-1]:=a[j];a[j]:=t end;
write(a[201],' ',a[202],' ',a[203]);
readln;
readln;
end.
9. 一个素数,去掉最高位,剩下的数仍是素数;再去掉剩下的数的最高位,余留下来的数还是素数,这样的素数叫纯粹素数。求所有三位数的纯粹素数。
var
a:array[1..999]of boolean;
i,j,b:longint;
procedure t1(var c:longint);
var
i,j,l:longint;
b:array[1..10]of longint;
begin
i:=c;l:=0;
while i>0 do
begin
b[l+1]:=i mod 10;
i:=i div 10;
inc(l);
end;
c:=0;i:=1;
for j:=l downto 2 do
begin
inc(c,b[j]*i);
i:=i*10;
end;
end;
begin
for i:=1 to 999 do
begin
a[i]:=true;
for j:=2 to trunc(sqrt(i))+1 do
if i mod j=0 then begin a[i]:=false; break; end;
if i=2 then a[i]:=true;
end;
for i:=100 to 999 do
begin
b:=i;
while (b<>0)and(a[b]) do t1(b);
if b=0 then writeln(i);
end;
readln;
readln;
end.
10. 自然数4,9,16,25等叫做完全平方数,因为22 =4, 32 =9, 42 =16,52 =25, 当某一对自然数相加和相减, 有时可各得出一个完全平方数。
例如: 8与17这对自然数: 17+8=25 17—8= 9
试编程,找出所有小于100的自然数对,当加和减该数对时,可各得出一个完全平方数。
program ex4;
var i,j:longint; a:array[1..200]of boolean;
begin
for i:=1 to 200 do
a[i]:=false;
for i:=1 to 14 do
a[i*i]:=true;
for i:=0 to 100 do
for j:=i to 100 do
begin
if a[i+j] and a[abs(i-j)] then writeln(i,',',j);
end;
readln;
readln;
end.
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-05
第一个题目:
program e3;
var x,y:longint;
a:array[1..7]of integer;
i,j,t:integer;
begin
for x:=1000 to 3162 do
begin
t:=0;
y:=x*x;
a[1]:=y div 1000000;
a[2]:=(y-a[1]*1000000) div 100000;
a[3]:=(y-a[1]*1000000-a[2]*100000) div 10000;
a[4]:=(y-a[1]*1000000-a[2]*100000-a[3]*10000) div 1000;
a[7]:=y mod 10;
a[6]:=((y mod 100)-a[7]) div 10;
a[5]:=((y mod 1000)-a[7]-a[6]*10) div 100;

for i:=1 to 6 do
begin
for j:=(i+1) to 7 do
if (a[i]=a[j]) then begin t:=1; break; end;
if (t=1) then break;
end;
if (t=0) then
writeln(y);
end;
readln;
end.
第2个回答  2010-05-08
第一题:
var i,j,k:longint;
begin
for i:=1000000 to 9999999 do
if string(sqrt(i))=string(trunc(sqrt(i))) do writeln(i);
end.

第二题:
var i:integer;
function ok(a:integer):boolean;
var i:integer;
begin
for i:=2 to trunc(sqrt(a)) do
if a mod i=0 then exit(false);
ok:=true;
end;
begin
for i:=100 to 999 do
if ok(i) and ok(i mod 100) and ok(i mod 10) then writeln(i);
end.

第三题:
var i,j:integer;
begin
for i:=1 to 100 do
for j:=i to 100 do
if (string(sqrt(i+j)=string(trunc(sqrt(i+j))))and
(string(sqrt(j-i))=string(trunc(sqrt(j-i)))) then
writeln(i,'-',j);
end.

后面几道题我明天再补,我把你的题目重新编了序号,你应该看的懂。
第3个回答  2010-05-07
第⑨题
program
var
a,b,c,d:longinr;
begin
a:=1;
d:=0;
for c:=1 to 15 do
begin
b:=a*2;
d:=d+b;
a:=b;
end;
d:=d+1;(加上第一格的1)
writeln(d);
end.

FreePascal原因
Free Pascal与Turbo Pascal之间的主要区别在于Free Pascal是一个32位的编译器,而Turbo Pascal只支持16位。这意味着Free Pascal可以提供更强大和高效的功能。另外,Free Pascal是一个跨平台的编译器,可以在Linux系统上使用,而Turbo Pascal只在Windows操作系统上运行。这种跨平台性使得Free Pascal在不同系统...

Free Pascal区别
Free Pascal与Turbo Pascal在设计上存在一些显著的差异。首先,Free Pascal作为一个32位的编译器,相比Turbo Pascal的16位版本,提供了更大的内存处理能力,理论上支持4GB内存,使得它能够在现代操作系统中充分利用系统资源。其次,Free Pascal具有跨平台的特性,不仅限于Windows和DOS,这意味着你的代码可以在...

free pascal 是什么
Free Pascal是个由国际组织开发的完全的win32的pascal语言编译器,类似delphi,可编写windows程序。目前,该项目的网站为www.freepascal.org,最新版本为2系列。此前被广泛使用的PASCAL编译器普遍为Turbo Pascal & Borland pascal。但是它们可用的空间十分有限。而Free Pascal理论上可以使用4GB内存。所以在利用...

free pascal 是什么
Free Pascal是一种开源的Pascal和Object Pascal编程语言编译器和运行时系统。它支持多种操作系统和硬件平台,并允许开发者编写跨平台的Pascal应用程序。Free Pascal的核心特点之一是它对Pascal和Object Pascal语言的广泛支持。Pascal是一种结构化的编程语言,以其简洁的语法和强大的功能而著称。Object Pascal则...

FreePascal与BorlandPascal(1)语法上区别(2)标准库差异?
Borland Pascal是一种较旧的Pascal方言,它的语法相对较简单和受限。它不支持一些现代化的语言功能,如动态数组和指针算术。标准库差异:Free Pascal的标准库更加丰富和全面,包含了大量的单元和函数库,可用于处理文件、字符串、图形、网络等不同的编程任务。Borland Pascal的标准库相对较小,提供了一些基本...

Free Pascal注意事项
在NOIP竞赛中使用Free Pascal时,需要注意以下几点:首先,关于文件名管理,Windows系统对大小写不敏感,但对其他如Linux这类大小写敏感的系统来说,至关重要。因此,确保程序中的文件名与实际竞赛环境中的文件名完全匹配,无论是源程序、输入、输出还是答案文件,都必须严格遵循题目给出的命名规则,包括大小...

free pascal 一定要用文件输入输出吗?
Free pascal不是一种编程语言,而是一种pascal语言的编译器,在编译的时候,不一定要用文件,文件的作用只是“不需人用手输入,而让计算机自己读取数据,并存到另一个文件中”,如果不用文件,也可以直接从键盘输入,结果显示在屏幕上。但是,如果要输入很多,显然“文件”的作用就体现出来了;在NOIP的...

如何在free Pascal上打中文?
首先,在具有窗口模式的环境下(通常在Windows XP系统中实现,可以通过按下Alt+Enter键在全屏和窗口模式之间切换),点击工具栏中的"汉"按钮。这样,你就能在Free Pascal的集成开发环境中使用中文输入了。请注意,这一功能在Windows XP系统上较为常见,而在Windows 98系统中可能有所差异。若在Windows 98...

试问freePascal与turboPascal的区别;请罗列要点即可?
FreePascal和TurboPascal都是面向过程的编程语言Pascal的不同实现。他们之间的主要区别如下:1.开发者和开发社区:Turbo Pascal由Borland公司开发,并成为1980年代乃至1990年代最为流行的集成开发环境(IDE)之一;而FreePascal则是一种自由软件,由一个拥有庞大的开发社区维护和改进。2.平台支持:Turbo Pascal...

free pascal 的基础知识
1、编程模拟剪刀、石头、布游戏:用S表示剪刀,用R表示石头,用P表示布。规则是:剪刀剪布,石头砸剪刀,布包石头。游戏者分别把自己的选择输入,计算机给出结果。2、某全自动加油站a,b,c三种汽油的单价(元\/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户...

相似回答