【试题描述】 有一组数(设有N个)。编一程序交换这组数中任意指定的两段。 【输入描述】
一个数N(不超过20个) 一行N个数由空格分开
两个空格分开的数(表示要交换的其中一段) 两个空格分开的数(表示要交换的其中另一段) 【输出描述】 交换后的一行数(中间用空格隔开) 【输入样例】 16
3 6 11 45 23 70 67 34 26 89 90 15 56 50 20 10 3 5 13 15
【输出样例】
3 6 56 50 20 70 67 34 26 89 90 15 11 45 23 10 program ex1146;
var i,j,n,k,a1,b1,a2,b2:integer; a,b:array[0..20] of longint; procedure make(x,y:integer); var i:integer; begin
for i:=x to y do begin inc(k); b[k]:=a[i]; end; end; begin
readln(n);
for i:=1 to n do read(a[i]); readln(a1,b1); readln(a2,b2); k:=0;
make(1,a1-1); make(a2,b2); make(b1+1,a2-1); make(a1,b1); make(b2+1,n);
for i:=1 to n do write(b[i],' '); end. 14
2 15 67 89 10 30 54 11 99 77 23 86 47 36 2 5 10 13
Shuchu 2 77 23 86 47 30 54 11 99 15 67 89 10 36
1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和。质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。需要特别说明的是1不是质数。
这就是哥德巴赫猜想。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。 从此,这道数学难题引起了几乎所有数学家的注意。哥德巴赫猜想由此成为数学皇冠上一颗可望不可及的“明珠”。
现在请你编一个程序验证哥德巴赫猜想。
【输入描述】 仅有一行,包含一个正奇数n,其中n大于9并且小于10000。 【输出描述】
仅有一行,输出3个质数,这3个质数之和等于输入的奇数。相邻两个质数之间用一个空格隔开,最后一个质数后面没有空格。如果表示方法不唯一,请输出第一个数最小的方案,如果第一个数最小的方案不唯一,请输出第二个数最小的方案。 【输入样例】 2009
【输出样例】 3 3 2003
program ex1309; var n,i,j:integer;
function pd(x:integer):boolean; var i:integer; begin i:=2;
while (i
readln(n);
for i:=2 to n-4 do for j:=2 to n-4 do
if pd(i) and pd(j) and pd(n-i-j) then begin
write(i,' ',j,' '); write(n-i-j); exit; end; end.
输入2013 输出 3 7 2003
11 (2 2 7)9999 (3 23 9973)
2008北京奥运会之前,很多人想成为四川汶川的一名火炬手,经过层层选拔,终于到了最后一关,这一关是一道很难的题:任意给定一个正整数N,求一个最小的正整数M,使得N×M的十进制表示形式里只有1和0。
【输入格式】只有一行,输入一个整数N。(m,N≤100000)
【输出格式】输出一行,如果有解,输出最小的M,否则输出”No Solution” 【样例输入】 12
【样例输出】 925 Var
a:array[1..20]of longint; n,t,i,j:longint;s:qword; Begin readln(n);
for i:=1 to 120000 do begin
j:=0;t:=i;s:=0; while t<>0 do begin inc(j);
a[j]:=t mod 2; t:=t div 2; end; while j>0 do begin
s:=s*10+a[j]; dec(j); end;
if s mod n=0 then begin
write(s div n); halt; end; end;
write('No Solution');
End. 320 (3125)99(no )58(no)
任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple
number。你的工作就是判断一个数N是不是Couple number。 输入:
仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。 输出:
输出在n1到n2范围内有多少个Couple number。
注意:包括n1和n2两个数,且n1 输出样例: 7 设数i能被分解成平方差形式 i=x^2-y^2 => i=(x+y)(x-y) => 若a=(x+y) b=(x-y) => i=a*b =>如果ab有整数解,说明i可拆分 =>即二元一次方程 x+y=a , x-y=b 有整数解 => x=(a+b)/2 ,y=(a-b)/2,即(a+b),(a-b)必须为偶数,a,b同奇同偶都满足条件,a,b一奇一偶不满足条件,又i=a*b,即如果i只能被分解为一奇一偶相乘,那么i不能被分解,反之可行,即i mod 4=2时 ,i只能被分解为一奇一偶相乘形式 偶数 i = 2*n = 2*(2n+1) = 4n + 2 ,偶数不能被4整除,说明它只有一个质因子2,即只能分解为一奇一偶相乘的形式 PROGRam fdfd; var n1,n2,I,J,tot:longint; begin readln(n1,n2); if (n1<=0)and(n2<=0) then begin n1:=-n1; n2:=-n2; tot:=n1; n1:=n2; n2:=tot; end; if (n1<0)and(n2>0) then begin tot:=0; for i:=0 to n2 do if i mod 4<>2 then inc(tot); for i:=1 to -n1 do if i mod 4<>2 then inc(tot); writeln(tot); halt; end; tot:=0; for i:=n1 to n2 do if i mod 4<>2 then inc(tot); writeln(tot); end. 10 90(60) 5000 12000(5251) 100000 200000(75001) 笑笑家楼下是一条绿化带,可以用一条坐标从0至10000的线段来表示。笑笑还知道这个绿化带上有n个地点(坐标是0到10000的整数)可以设置喷水池。已知喷水池的半径为r(正整数)。笑笑希望知道至少需要设置多少个喷水池才能把这绿化带全部灌溉。 【输入格式】 第一行两个整数n和r。分别表示可设置喷水池的地点数和喷水池半径。 第二行n个数,分别表示可设置喷水池的地点坐标。 【输出格式】 一个数,表示所需设置喷水池的最少数量。 【输入样例】 5 4000 0 1000 3000 2000 9000 【输出样例】 2 【数据规模】 0<=1000,可以保证不存在无解情况。 const maxn=1000; var n,m:longint; a:array[1..maxn]of integer; n,r,ans:integer; procedure init; var i,j,t:integer; begin readln(n,r); for i:=1 to n do read(a[i]); for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; end; end; procedure main; var i,cover:integer; begin cover:=0;ans:=0;i:=1; while cover<10000 do begin whiel (i inc(ans); cover:=a[i]+r; end writeln(ans); end; begin assign(input,'water.in');reset(input); assign(output,'water.out');rewrite(output); init;main; close(input);close(output); end. Mr. F有N块水晶,每块水晶有一个高度,他想用这N块水晶搭建两座有同样高度的塔,使他们成为一座双塔,Mr. F可以从这N块水晶中任取M(1≤M≤N)块来搭建。但是他不知道能否使两座塔有同样的 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2014noip复赛模拟练习15(答案)在线全文阅读。
相关推荐: