




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
历届程序填空题汇编历届程序填空题汇编 2009 年普 年普 1 最大连续子段和 最大连续子段和 给出一个数列 元素个数不多于 100 数列元 素均为负整数 正整数 0 请找出数列中的一个连续子数列 使得这个子数 列中包含的所有元素之和最大 在和最大的前提下还要求该子数列包含的元 素个数最多 并输出这个最大和以及该连续子数列中元素的个数 例如数列 为 4 5 3 2 4 时 输出 9 和 3 数列为 1 2 3 5 0 7 8 时 输出 16 和 7 var a array 1 100 of integer n i ans len tmp beg integer begin read n for i 1 to n do read a i tmp 0 ans 0 len 0 beg for i 1 to n do begin if tmp a i ans then begin ans tmp a i len i beg end else if and i beg len then len i beg if tmp a i then begin beg tmp 0 end else end writeln ans len end 2 国王放置国王放置 在 n m 的棋盘上放置 k 个国王 要求 k 个国王互相不攻 击 有多少种不同的放置方法 假设国王放置在第 x y 格 国王的攻击的 区域是 x 1 y 1 x 1 y x 1 y 1 x y 1 x y 1 x 1 y 1 x 1 y x 1 y 1 读入三个数 n m k 输出答案 题目 利用回溯法求解 棋盘行标号为 0 n 1 列标号为 0 m 1 var n m k ans integer hash array 0 4 0 4 of integer procedure work x y tot integer var i j integer begin if tot k then begin inc ans exit end repeat while hash x y 0 do begin inc y if y m then begin inc x y end if x n then exit end for i x 1 to x 1 do if i 0 and i 0 and j 0 and i 0 and j m then inc y if y m then begin inc x y 0 end if x n then exit until false end begin read n m k ans 0 fillchar hash sizeof hash 0 writeln ans End 2008 年普 年普 1 字符串替换 字符串替换 给定一个字符串 S S 仅包含大小写字母 下面的程序将 S 中的每个字母用规定的字母替换 并输出 S 经过替换后的结果 程序的输入 是两个字符串 第一个字符串是给定的字符串 S 第二个字符串 S 由 26 个字 母组成 它是 a z 的任一排列 大小写不定 S 规定了每个字母对应的替换字 母 S 中的第一个字母是字母 A 和 a 的替换字母 即 S 中的 A 用该字母的大 写替换 S 中的 a 用该字母的小写替换 S 中的第二个字母是字母 B 和 b 的 替换字母 即 S 中的 B 用该字母的大写替换 S 中的 b 用该字母的小写替换 以此类推 Var change string Str string Procedure CheckChangeRule Var i integer Begin for i 1 to 26 do begin if then change i chr ord change i ord A ord a end end Procedure ChangeString Var len i integer begin len length str for i 1 to len do begin if then begin str i upcase change ord str i ord A 1 end else begin end end end begin readln str readln change CheckChangeRule writeln str end 2 找第 找第 k 大的数 大的数 给定一个长度为 1 000 000 的无序正整数序列 以及另一 个数 n 1 n 1000000 然后以类似快速排序的方法找到序列中第 n 大的数 关于第 n 大的数 例如序列 1 2 3 4 5 6 中第 3 大的数是 4 VAR a array 1 1000000 of integer n m ans integer Procedure swap var a b integer var t integer begin if ab then begin t a a b b t end end function FindKth left right n integer integer var tmp value i j integer begin if left right then exit left tmp random right left left swap a tmp a left value i left j right while i j do begin while i j and do dec j if i j then begin a i a j inc i end else break while i j and do inc i if i j then begin a j a i dec j end else break end if in then begin dec i exit end exit i end var i integer begin randomize m 1000000 for i 1 to m do read a i read n ans FindKth 1 m n writeln a ans end 2007 年普 年普 1 求字符的逆序 求字符的逆序 下面的程序的功能是输入若干行字符串 每输入一行 就按逆序输出该行 最后键入 1 终止程序 请将程序补充完整 Program j401 type str1 string 100 var line str1 kz integer procedure reverse var s str1 var I j integer t char begin i 1 j length s while i j do begin t s i s i s j s j t end end begin writeln continue 1 for end readln kz while do begin readln line writeln line writeln continue 1 for end readln kz end end 2 棋盘覆盖问题 棋盘覆盖问题 在一个 2k 2 k个方格组成的棋盘中恰有一个方格与其它 方格不同 图中标记为 1 的方格 称之为特殊方格 现用 L 型 占 3 个小方 格 纸片覆盖棋盘上除特殊方格的所有部分 各纸片不得重叠 于是 用到 的纸片数恰好是 4 k 1 3 在下表给出的一个覆盖方案中 k 2 相同的 3 各数字构成一个纸片 下面给出的程序使用分治法设计的 将棋盘一分为四 依次处理左上角 右上角 左下角 右下角 递归进行 请将程序补充完整 Program j402 type arr1 array 1 65 of integer arr2 array 1 65 of arr1 var board arr2 tile integer size dr dc integer procedure chessboard tr tc integer dr dc integer var size integer var t s integer begin if size 1 then t tile inc tile s size div 2 if then chessboard tr tc dr dc s else begin board tr s 1 t end if dr tc s then chessboard tr tc s dr dc s else begin board tr s 1 tc s t end if dr tr s and dc tr s and dc tc s then chessboard tr s tc s dr dc s else begin board tr s tc s t end end procedure prt1 n integer var I j integer begin for I 1 to n do begin for j 1 to n do write board i j 3 writeln end end begin writeln input size 4 8 16 64 readln size writeln input the position of special block x y readln dr dc board dr dc 1 tile 1 chessboard 1 1 dr dc size prt1 size end 2006 年普 年普 1 全排列 下面程序的功能是利用递归方法生成从 1 到 n n 10 的 n 个数的 全部可能的排列 不一定按升序输出 例如 输入 3 则应该输出 每行输 出 5 个排列 123 132 213 231 321 312 程序 Program ex401 Var i n k integer a array 1 10 of integer count longint 变量 count 记录不同排列的个数 这里用于控制换行 Procedure perm k integer var j p t integer begin if then begin inc count for p 1 to k do write a p 1 write if then writeln exit end for j k to n do begin t a k a k a j a j t t a k end end begin writeln Entry n read n count 0 for i 1 to n do a i i end 2 由键盘输入一个奇数 P P 100 000 000 其个位数字不是 5 求一个整数 S 使 P S 1111 1 在给定的条件下 解 S 必存在 要求在屏幕上依次 输出以下结果 1 S 的全部数字 除最后一行外 每行输出 50 位数字 2 乘积的 数字位数 例 1 输入 p 13 由于 13 8547 111111 则应输出 1 8547 2 6 例 2 输入 p 147 则输出结果应为 1 755857898715041572184429327286470143613 2233 2 113 4115 4455 2 42 即等式的右端有 42 个 1 程序 program ex402 var p a b c t n longint begin while true do begin writeln Input p the last digit is 1 or 3 or 7 or 9 readln p if p mod 20 and p mod 50 then 如果输入的数符合要求 结束循环 end a 0 n 0 while a p do begin a a 10 1 inc n end t 0 repeat b a div p write b 1 inc t if then writeln c a inc n until c 0 dec n writeln writeln n end 2005 年普 年普 1 判断质数 题目描述 给出一个正整数 判断这个数是否是质数 输入 一个正整数 n 1 n 10000 输出 如果 n 是质数 输出 YES 否则 输出 NO 输入样例 10 输出样例 NO 程序 var integer begin read n if n 2 then writeln else if or n mod 2 0 then writeln NO else begin i 3 while i i k then break num end if then isok true else isok false end begin readln n k right 0 for i 1 to n do begin readln len i if right len i then right len i end inc right while c b c a c a b 表示三角形三边的 边长 输出 三角形内切圆的面积 结果四舍五入到小数点后面2位 输入样例 3 4 5 输出样例 3 14 程序 program program1 var a b c r s t real begin read a b c s 2 t s s a s b s c r t s writeln 3 1415927 r 0 end 2 Joseph 题目描述 原始的Joseph问题的描述如下 有n个人围坐在一个圆桌周围 把这n个 人依次编号为1 n 从编号是1的人开始报数 数到第m个人出列 然后 从出列的下一个人重新开始报数 数到第m个人又出列 如此反复直到所 有的人全部出列为止 比如当n 6 m 5的时候 出列的顺序依次是 5 4 6 2 3 1 现在的问题是 假设有k个好人和k个坏人 好人的编号的1到k 坏人的 编号是k 1到2k 我们希望求出m的最小值 使得最先出列的k个人都是坏人 输入 仅有的一个数字是k 0 k 14 输出 使得最先出列的k个人都是坏人的m的最小值 输入样例 4 输出样例 30 程序 program program2 var i k m start longint find boolean function check remain integer boolean var result integer begin result mod remain if then begin start result check true end else check false end begin find false read k m k while do begin find true start 0 for i 0 to k 1 do if not check then begin find false break end inc m end writeln end 2003 年普 年普 1 一元二次方程 题目描述 方程 ax 2 bx c 0 要求给出它的实数解 输 入 三个实数 a b c 是方程的三个系数 a 0 输 出 如果无实数解 则输出 No solution 如果有两个相等的实数解 则输出其中一个 四舍五入到小数点后 面 3 位 如果有两个不等的实数解 则解与解之间用逗号隔开 同样要四舍 五入到小数点后 3 位 输入样例 l 2 1 输出样例 1 000 程 序 program Program41 var a b c m real begin read a b c m b b 4 a c if then begin write 0 3 write write 1 b sqrt m 2 a 0 end else if then write else begin write No solution end end 2 翻硬币 题目描述 一摞硬币共有 m 枚 每一枚都是正面朝上 取下最上面的一枚硬币 将 它翻面后放回原处 然后取下最上面的 2 枚硬币 将他们一起翻面后再放回 原处 再取 3 枚 取 4 枚 直至 m 枚 然后再从这摞硬币最上面的一枚开 始 重复刚才的做法 这样一直做下去 直到这摞硬币中的每一枚又都是正 面朝上为止 例如 m 为 1 时 翻两次即可 m 为 2 时 翻 3 次即可 m 为 3 时 翻 9 次即可 m 为 4 时 翻 11 次即可 m 为 5 时 翻 24 次即可 m 为 30 时 翻 899 次即可 输 入 仅有的一个数字是这摞硬币的枚数 m 0 m 1000 输 出 为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数 输入样例 30 输出样例 899 程 序 program Programl var m integer function solve m integer integer vat i t d integer flag boolean begin if m 1 then so1ve else begin d 2 m 1 t 2 i 1 flag False repeat if t 1 then begin solve flag True end else if then begin solve i m 1 flag True end else t i i 1 until flag end end begin read m if m 0 and m 1000 then writeln end 2002 年普 年普 1 问题描述 将 n 个整数分成 k 组 k n 要求每组不能为空 显然这 k 个部分 均可得到一个各自的和 s1 s2 sk 定义整数 P 为 P S1 S2 2 S1一 S3 2 S1 Sk 2 s2 s3 2 Sk 1 Sk 2 问题求解 求出一种分法 使 P 为最小 若有多种方案仅记一种 程序说明 数组 a 1 a 2 A N 存放原数 s 1 s 2 s K 存放每个部分的和 b 1 b 2 b N 穷举用临时空间 d 1 d 2 d N 存放最佳方案 程序 program exp4 Var i j n k integer a array 1 100 of integer b d array 0 100 of integer s array 1 30 of integer begin readln n k for I 1 to n do read a I for I 0 to n do b I 1 cmin 1000000 while b 0 1 do begin for I 1 to k do for I 1 to n do sum 0 for I 1 to k 1 do for j sum sum s I s j s I s j if then begin cmin sum for I 1 to n do d I b I end j n while do j j 1 b j b j 1 for I j 1 to n do end writeln cmin for I 1 to n do write d I 40 writeln end 2 问题描述 工厂在每天的生产中 需要一定数量的零件 同时也可以知道每 天生产一个零件的生产单价 在 N 天的生产中 当天生产的零件可以满足 当天的需要 若当天用不完 可以放到下一天去使用 但要收取每个零件的保 管费 不同的天收取的费用也不相同 问题求解 求得一个 N 天的生产计划 即 N 天中每天应生产零件个数 使总 的费用最少 输入 N 天数 N 29 每天的需求量 N 个整数 每天生产零件的单价 N 个整数 每天保管零件的单价 N 个整数 输出 每天的生产零件个数 N 个整数 例如 当 N 3 时 其需要量与费用如下 第一天第二天第三天 需要量251530 生产单价203032 保管单价5l00 生产计划的安排可以有许多方案 如下面的三种 第一 天 第二天第三天总的费用 25153025 2O 15 30 30 32 1910 4003040 20 15 5 30 32 1835 700070 20 45 5 30 10 1925 程序说明 b n 存放每天的需求量 c n 每天生产零件的单价 d n 每天保管零件的单价 e n 生产计划 程序 Program exp5 Var i j n yu j0 j1 s integer b c d e array 0 30 of integer begin readln n for i 1 to n do readln b i c I d i fori 1 to n do e i 0 10000 c n 2 0 b n 1 0 jO 1 while jO n do begin yu c j0 j1 jO s b j0 while do begin j1 j1 1 s s b j1 end jO j1 1 end for i 1 to n do readln end 2001 年普 年普 1 输入 n 个 0 到 100 之间的整数 由小到大排序输出 每行输出 8 个 程序清单 program chu7 5 var i j k n x integer b array 0 100 of integer begin readln n for i 0 to 100 do b i 0 for i 1 to n do begin readln x b x end for i 0 to 100 do while do begin write k k 1 b i b i 1 if then writeln end readln end 2 在 A B 两个城市之间设有 N 个路站 如下图中的 S1 且 N 100 城市与路 站之间 路站和路站之间各有若干条路段 各路段数 20 且每条路段上的距 离均为一个整数 A B 的一条通路是指 从 A 出发 可经过任一路段到达 S1 再从 S1 出 发经过任一路段 最后到达 B 通路上路段距离之和称为通路距离 最大距 离 1000 当所有的路段距离给出之后 求出所有不同距离的通路个数 相同 距离仅记一次 例如 下图所示是当 N 1 时的情况 从 A 到 B 的通路条数为 6 但因其中通路 5 5 4 6 所以满足条件的不同 距离的通路条数为 5 算法说明 本题采用穷举算法 数据结构 N 记录 A B 间路站的个数 数组 D I 0 记录第 I 1 到第 I 路站间路段的个数 D I 1 D I 2 记录每个路段距离 数组 G 记录可取到的距离 程序清单 program chu7 6 var i j n s integer b array 0 100 of integer d array 0 100 0 20 of integer g array 0 1000 of 0 1 begin readln n for i 1 to n 1 do begin readln d i 0 for j 1 to d i 0 do readln d i j end d 0 0 1 for i 1 to n 1 do b i 1 b 0 0 for i 0 to 1000 do g i 0 while do begin s 0 for i 1 to n 1 do s g s 1 j n 1 while do j j 1 b j b j 1 for i j 1 to n 1 do b i 1 end s 0 for i 1 to 1000 do writeln s readln end 2000 年普 年普 1 将 2n个 0 和 2n个 1 排成一圈 从任一个位置开始 每次按逆时针的 方向以长度为 n 1 的单位进行数二进制数 要求给出一种排法 用上面的方法产生出来的 2n 1个二进制数都不相同 例如 当 n 2 时 即 22个 0 和 22个 1 排成如下一圈 比如 从 A 位置开始 逆时针方向取三个数 000 然后再从 B 位置上 开始取三个数 001 接着从 C 开始取三个数 010 可以得到 000 001 010 101 011 111 110 100 共 8 个二进制数且都不相 同 程序说明 以 n 4 为例 即有 16 个 0 16 个 1 数组 a 用以记录 32 个 0 1 的排法 数组 b 统计二进制数出现的可能性 程序清单 program noi00 var a array 1 36 of 0 1 b array 0 31 of integer i j k s p integer begin for i 1 to 36 do a i 0 for i 28 to 32 do a i 1 p 1 a 6 1 while p 1 do begin j 27 while a j 1 do j j 1 for i j 1 to 27 do for i 0 to 31 do b i 0 for i 1 to 32 do begin for k i to i 4 do s s 2 a k end s 0 for i 0 to 31 do s s b i if then p 0 end for i 1 to 32 do for j i to i 4 do write a j writeln end 2 多项式的乘法 例如有如下多项式 P X 2X2 X 1 Q X X 1 则 P X Q X 2X2 X 1 X 1 2X3 X2 1 程序说明 多项式的表示 系数 指数 如上例中 P X 系数 指数 Q X 系数 指 数 2 2 1 1 1 1 1 0 1 0 0 0 0 0 PXQ 的结果存入 C 中 其输出格式是 依次用一对括号内的 系数 指数 分别来表示 如上例的 输出结果表示为 2 3 1 2 1 0 程序清单 program noi 007 var i j k l jp jq jc x y x1 y1 integer p q array 1 10 1 2 of integer c array 1 20 1 2 of integer begin jp 0 readln x y while x0 do begin jp jp 1 p jp 1 x p jp 2 y readln x y end jq 0 readln x y while x0 do begin jq jq 1 q jq 1 x q jq 2 y readln x y end jc 1 c jc 1 0 c jc 2 1000 for i 1 to jp do begin y p i 2 for j 1 to jq do begin y1 y q j 2 k 1 while y1 c k 2 do k k 1 if y1 c k 2 then else begin for l jc downto k do begin c l 1 1 c l 1 c l 1 2 c l 2 end c k 1 x1 c k 2 y1 end end end for i 1 to jc do if then write c i 1 c i 2 readln end 1999 年普 年普 问题描述问题描述 下面程序的功能是从键盘读取 A B 数组的元素 A B 数组均已从小到 大排好序 无相同元素 现将 A B 合并为数组 C 同样要求数组 C 也是从 小到大排好序 有相同元素时只保留一个 程序中 N 表示数组 A B 的长度 i j k 分别表示数组 A B C 的取 数或存数的指针 程序清单程序清单 program excp3 const n 8 m 2 n type arr1 array 1 n of integer arr2 array 1 m of integer var a b arr1 c arr2 i j k integer procedure copy x arr1 var y arr2 var i j integer begin i i 1 y i x j j j 1 end begin for i 1 to n do read a i readln for i 1 to n do read b i readln i 1 j 1 while do if a i b j then copy a c k i else if b j a and a i z then begin k k 1 2 end else if k 0 then if ch k then 表示一个空格 以 下同 begin k k 1 ch k end m 0 3 repeat m m 1 read b m until 4 i 1 j 1 k 1 b m while i n and j m do begin if 5 then begin i i 1 j j 1 end else begin while ch i do 6 i i 1 j 1 k k 1 end end if 7 then writeln k 4 else writeln not found end 1997 年普 年普 1 问题描述问题描述 读入 n 个不相同且不为 0 的数 1 n 100 不用排序 求出其中第 r 个大的数 1 r n 即有 r 1 个数比它大 其余的数都比它小 例如 输入 3 14 22 15 17 6 其中第 3 个大的数为 15 算法说明算法说明 以数组 a 1 100 记录读入的 n 个数 并以 0 结束 0 本身不 是 n 个数中的数 然后从第一个数开始 将它与其余的数进行比较并记录出 比它大的数的个数 存于变量 y 中 若 y r 1 时 得到所求结果 否则对下 一个数进行同样的处理 程序清单程序清单 program exp2 input output Var r i j k x y integer a array 1 100 of integer p boolean Begin j 0 readln x while do begin a j x end readln r p true i 1 while p do begin y 0 for k 1 to j do if x y do begin r r y q q 1 end 结果 商在 q 中 余数在 r 中 算法说明算法说明 上面的算法有一个缺点 就是当 x 比较大 y 比较小时 则 运算的次数非常多 速度太慢 为提高速度 下面给出改进的算法 先找一 个非常接近 x 的数 w 且满足 w y 2k y 2 k 1 x w 然后通过减法与移位 的运算 以较少的运算次数完成除法 程序清单程序清单 program exp3 input output var x y w r q integer Begin readln x r x while w w then begin R end end writeln q R End 3 问题描述问题描述 一个正整数 非素数 可表示成它的因子 1 与其本身 除外 的乘积 例如 12 有因子 2 3 4 6 所以可表示为 12 2 2 3 4 3 2 6 给出任一个正整数 N 求出它所有的因子乘积的表达式 交换律得出的 不同式子算同一种 算法说明算法说明 读入一个整数 N 首先求出它的所有的因子以及每个因子可 能的次数 例如 整数 48 因子 2 3 4 6 8 12 16 24 次数 4 1 2 1 1 1 1 1 将上面的结果存入数组 A ARRAY 0 20 1 2 中 其中 A 1 表示因子 A 2 表示次数 然后用简单回溯的方法求出所有可能的表示 数组 B 0 20 记录取数情况 C ARRAY 0 20 工作单元 程序清单程序清单 program exp4 input output var a array 0 20 1 2 of integer c b array 0 20 of integer n m I j s k l integer Begin WRITELN readln n for i 1 to 20 do a i 1 0 a 0 2 1 j 0 for i 2 to n 1 do begin s 0 m n while m0 and m mod i 0 do begin m m div i end if then begin j j 1 a j 2 end end for i 0 to j do b i 0 whil b 0 0 do begin k j while do k k 1 b k b k 1 for L do b L 0 s 1 for i 1 to j do if b i 0 then for L 1 to b i do if s n then begin for i 1 to j do c i b i WRITE M 1 for i 1 to j do while c i 0 and MN do begin M M A i 1 if M N then write a i j else begin write A i 1 c i c i 1 end end writeln end end End 1996 年普 年普 1 题题 目目 15 分 每空 5 分 设有 N 个不同整数的数列 例如 N 4 时 有 4 个不同整数的数列为 17 4 16 5 数列中的第 1 个数 17 比它后面的三个数都大 则称数 17 的 逆数为 3 数列中的第 2 个数 4 比它后面的数都小 则称数 4 的逆数为 0 同 时记数列中全部逆数的和称为数列的逆数 上例中 数列 17 4 16 5 的逆 数 为 3 0 1 0 4 程序要求程序要求 当给出 N 个不同整数的数列后 求出此数列的逆数 算法描述算法描述 为求得上面问题的解 设置数组 A ARRAY 1 N OF INTEGER 和逆数计数器 5 然后用一个二重循环求出数列的逆数 程程 序序 const n 10 var i j s integer a array 1 n of integer begin s 0 for i 1 to n do read a i for i 1 to 1 do for j 2 to n do if a i a j then 3 writeln s s end 2 题题 目目 20 分 每空 4 分 装球 设有 n 个盒子 n 足够大 可装入任何数量的球 分别编号 1 2 同时有 k 个小球 k 0 今将 k 个小球装入到盒子中去 装入规则如下 1 第一个盒子不能为空 2 装入必须严格按递增顺序进行 例如 当 k 8 n 6 时 装入方法有 1 2 5 或 1 3 4 3 在满足上面的两个条件下 要求有球的盒子尽可能多 4 装完后 相邻盒子中球个数差的绝对值之和最小 未装的盒子不 计 如上例中 装入法 1 2 5 则差的绝对值之和为 2 1 5 2 4 装入法 1 3 4 则差的绝对值之和为 3 1 4 3 3 程序要求程序要求 给出 k k 表示小球的个数 之后 求出满足上述四个条件 的装入方法 算法描述算法描述 设计一个数组 A 用数组元素代表盒子 然后依次装入小球 程序清单程序清单 const n 20 var i j k l integer a array 1 n of integer begin readln k 1 j 1 while 2 do begin a j j 3 j j 1 end l j 1 while k 0 do begin 4 k k 1 l l 1 end for i 1 to 5 do write a i 4 end 3 题题 目目 21 分 3 4 3 3 4 4 积木游戏 设有 n 个小木块排成一排 如下图 游戏开始时 每个小木块向下的一面涂有红 黄 蓝三种颜色之中的一 种 约定 0 表示红色 1 表示黄色 2 表示兰色 要求通过翻看与交换方式 对小木块重新排列 翻看的规则为每个小木快只能看一次 最终成为下面的 形状 红 蓝 黄 即相同颜色的木块排列在一起 设计一个翻看与交换的方案 使得用最 少的交换次数实现上面的要求 算法描述算法描述 翻看小木块时 可以从两端进行 例如 设中间状态如下 A B C 红 未翻过 蓝 黄 此时 可以从两个方向看 即从 A 或 B 处开始 1 若看 A 则有三种可能性 为红色 则不用交换 为兰色 交换一次 即 A 与 B 交换 为黄色 交换两次 即 C 与 B 交换一次 然后 A 与 C 再交换一次 此时 平均交换次数为 1 2 若看 B 也有三种可能性 为兰色 则不用交换 为红色 交换一次 即 B 与 A 交换 为黄色 交换一次 即 B 与 C 交换 此时 平均交换次数为 2 3 由此可见 从 B 处翻看直到游戏结束 次数最少符合题目要求 程程 序序 const n 20 var i tem r b y integer a array 1 n of 0 2 begin for i 1 to n do read a i r 1 1 y n while 2 do if 3 then begin tem a r a r a b a b tem r r 1 end else if 4 then begin tem a b a b a y a y tem 5 6 end else b b 1 for i 1 to n do write a i 3 end 1995 年普 年普 求出所有满足下列条件的二位数 将此二位数的个位数字与十位数字进 行交换 可得到一个新的数 要求新数与原数之和小于 100 程序要求程序要求 每行输出 6 个满足条件的数 算法提要算法提要 分解每一个二位数 然后重新组成一个新数 当满足条件时 用计数器来统计个数 程序 k 0 for i to 99 do x y j x 10 y if then k k 1 write i 4 then writeln endif endfor 找出小于 33 的 6 个正整数 用这些整数进行加法运算 使得包括原来的 整数在内能组成尽可能多的不同整数 例如 用 2 3 5 这三个数能可组成下面的数 2 3 5 2 3 5 但 5 已经存在 2 5 7 3 5 8 2 3 5 10 所以用 2 3 5 能组成 6 个不同的数 程序要求 程序要求 输出所选的这 6 个数 以及能组成不同整数的个数 算法提要算法提要 选择的这 6 个数 用来组成数时应该尽可能不重复 引入 数组 A 保存找出的这 6 个整数 程序 A 1 1 t 0 For i 2 to 6 do for j 1 to i 1 do s ENDFOR a i ENDFOR FOR i 1 TO 6 DO T WRITE a i ENDFOR Writeln 能组成不同整数的个数 t End 求出 2 1000 之间长度最长的 成等差数列的素数 质数 例如 在 2 50 之间的全部素数有 2 3 5 7 11 13 17 19 23 29 31
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力与碳汇
- 出行安全培训班课件
- 初级导游人员资格考试(全国导游基础知识、地方导游基础知识)练习试题及答案(吉林2025年)
- 社交互动影响转化-洞察及研究
- 2025年新版妇产科三基考试试题及答案
- (2025)国家公务员录用考试行测常识题库及答案
- 金属回收循环经济研究-洞察及研究
- 艾滋病防治知识竞赛题库及答案
- 出口流程课件
- 2025【合同范本】停车位物业管理合同
- (2025秋新版)教科版三年级上册科学全册教案
- 2025年新西师大版数学三年级上册全册课件
- 食品安全总监、食品安全员考核考试测试题及答案
- 2025年彩票市场监察笔试备考手册
- 培训学校租房合同协议书
- 第8课 西溪湿地教学设计-2025-2026学年小学地方、校本课程浙教版(2021)人·自然·社会
- 江淮十校2026届高三第一次联考物理试卷(含答案解析)
- 网络货运行业知识培训课件
- 《从“浪浪山”启程做更好的“小妖怪”!》开学第一课班会教案
- 1.8《天气的影响》教学设计-教科版三上科学(新教材)
- 防地震教学课件
评论
0/150
提交评论