欢迎来到天天文库
浏览记录
ID:37866381
大小:54.00 KB
页数:5页
时间:2019-06-01
《pascal入门测试6(答案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令,;编程计算男人、女人和小孩的人数。vara,b,c:integer;beginfora:=1to10doforb:=1to(50-a*3)div2dobeginc:=(30-a-b);ifa*3+b*2+c=50thenwriteln(a:5,b:5,c:5);end;readln;end.一个两位整数A本身是素数,若将其个位数字与十位数字交换,得到一个新的两位数B,而B也是素
2、数,我们则称A为无暇素数。例如:31是素数,个位数字与十位数字交换后得到13,也是素数。所以31是无暇素数。问题:给出二个两位整数M,N(M3、(k<=trunc(sqrt(i)))andfdoifimodk=0thenf:=falseelsek:=k+1;g:=true;k:=2;while(k<=trunc(sqrt(j)))andgdoifjmodk=0theng:=falseelsek:=k+1;iffandgthenifhthenwrite(i)elsebeginh:=false;write(‘,’,i);end;end;writeln;readln;End.给出一个自然数N(1≦N≦100),可得到从1开始到N为止的N个自然数,现要求出这N个数的全部各个数4、位上的数字之和。例如:当N=12时,这12个数是:1,2,3,4,5,6,7,8,9,10,11,12。则这12个数的数字之和为:1+2+3+4+5+6+7+8+9+1+0+1+1+1+2=51【样例输入】N=12【样例输出】51varn,t,x,s:integer;beginwrite('N=');readln(n);t:=0;s:=0;repeatt:=t+1;x:=t;whilex>0dobegins:=s+xmod10;x:=xdiv10;end;untilt=n;writeln(s);readln;end.一个合数(5、质数的反数),去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下来的数还是合数,这样反复,一直到最后剩下的一位数仍为合数,我们把这样的数称为纯粹合数。求所有的三位纯粹合数。varn,i,n1,a,t,j:integer;f:boolean;begina:=0;forn:=200to999dobegint:=0;n1:=n;forj:=1to3dobeginf:=true;i:=2;while(i<=trunc(sqrt(n1)))andfdoifnmodi=0thenf:=false;elsei:=i+1;iff=f6、alsethent:=t+1;n1:=n1div10;end;ift=3thena:=a+1;end;writeln;writeln(a);end.若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数56,将56加65(即把56从右向左读),得到121是一个回文数。写一个程序,给定一个十进制数N,判断与它的从右向左读的数相加后所得到的数是否是回文数。样例:.INPUTN=123OUTPUTYESvarn,a,b,c,d:integer;beginwrite('N=');readln7、(n);a:=n;b:=0;whilea>0dobeginb:=b*10+amod10;a:=adiv10;end;n:=n+b;c:=n;d:=0;whilec>0dobegind:=d*10+cmod10;c:=cdiv10;end;ifn=dthenwriteln('Yes')elsewriteln('No');readln;end.若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。例如:(13)10=(1101)2其中1的个数为3,0的个数为1,8、则称此数为A类数;(10)10=(1010)2其中1的个数为2,0的个数也为2,称此数为B类数;(24)10=(11000)2其中1的个数为2,0的个数为3,则称此数为B类数;程序要求:输入1~1000之中(包括1与1000)的一个正整数,输出它是A类数还是B类数。[输入输出
3、(k<=trunc(sqrt(i)))andfdoifimodk=0thenf:=falseelsek:=k+1;g:=true;k:=2;while(k<=trunc(sqrt(j)))andgdoifjmodk=0theng:=falseelsek:=k+1;iffandgthenifhthenwrite(i)elsebeginh:=false;write(‘,’,i);end;end;writeln;readln;End.给出一个自然数N(1≦N≦100),可得到从1开始到N为止的N个自然数,现要求出这N个数的全部各个数
4、位上的数字之和。例如:当N=12时,这12个数是:1,2,3,4,5,6,7,8,9,10,11,12。则这12个数的数字之和为:1+2+3+4+5+6+7+8+9+1+0+1+1+1+2=51【样例输入】N=12【样例输出】51varn,t,x,s:integer;beginwrite('N=');readln(n);t:=0;s:=0;repeatt:=t+1;x:=t;whilex>0dobegins:=s+xmod10;x:=xdiv10;end;untilt=n;writeln(s);readln;end.一个合数(
5、质数的反数),去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下来的数还是合数,这样反复,一直到最后剩下的一位数仍为合数,我们把这样的数称为纯粹合数。求所有的三位纯粹合数。varn,i,n1,a,t,j:integer;f:boolean;begina:=0;forn:=200to999dobegint:=0;n1:=n;forj:=1to3dobeginf:=true;i:=2;while(i<=trunc(sqrt(n1)))andfdoifnmodi=0thenf:=false;elsei:=i+1;iff=f
6、alsethent:=t+1;n1:=n1div10;end;ift=3thena:=a+1;end;writeln;writeln(a);end.若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数56,将56加65(即把56从右向左读),得到121是一个回文数。写一个程序,给定一个十进制数N,判断与它的从右向左读的数相加后所得到的数是否是回文数。样例:.INPUTN=123OUTPUTYESvarn,a,b,c,d:integer;beginwrite('N=');readln
7、(n);a:=n;b:=0;whilea>0dobeginb:=b*10+amod10;a:=adiv10;end;n:=n+b;c:=n;d:=0;whilec>0dobegind:=d*10+cmod10;c:=cdiv10;end;ifn=dthenwriteln('Yes')elsewriteln('No');readln;end.若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。例如:(13)10=(1101)2其中1的个数为3,0的个数为1,
8、则称此数为A类数;(10)10=(1010)2其中1的个数为2,0的个数也为2,称此数为B类数;(24)10=(11000)2其中1的个数为2,0的个数为3,则称此数为B类数;程序要求:输入1~1000之中(包括1与1000)的一个正整数,输出它是A类数还是B类数。[输入输出
此文档下载收益归作者所有