用模拟精灵解百度编程大赛试题
原题需要C,但是用模拟向导更快,但是没有经过仔细的分析和优化。
第一题是连续正整数(10分)
题目:正整数可能表示为n(n> =2)个连续正整数之和,如:
15 = 1 2 3 4 5
15 = 4 5 6
15 = 7 8。
请写一个程序,根据输入的任意正整数,找出所有满足这个要求的连续正整数序列。
Input:正整数,作为命令行参数提供给程序。
输出数据:所有符合标题描述的正整数序列都打印在标准输出上,每行一个序列,每个序列从序列的最小正整数到最大正整数打印。结果是,如果有多个序列,按照每个序列的最小正整数从小到大打印每个序列。另外,序列不允许重复,序列中的整数用空格隔开。如果没有符合要求的序列,则输出“NONE”。
例如,对于15,输出结果是:
1 2 3 4 5
4 5 6
7 8。
对于16,输出结果是:
NONE
评分标准:程序输出结果是否正确。
打印(字符串);
while(nStop())do
delay(100)
打印(“按”.._SHKEY.."然后输入一个数字退出程序")
print("请输入一个正整数:")
ns = io . read();
While (n stop()和(not to number (ns)) do
print("请输入有效整数");
ns = io . read();
结束
n =到数字(ns)
打印("")
对于i=1,n/2 1,1 do
局部k = 0;
局部J2 = 0;
对于j =i,n/2 1,1 do
k = k j;
J2 = j;
if(k = = n)then break end;
end;
if(k = = n)then
local out = n.." = "..我;
for y=i 1,j2,1 do
out = out.." "..y
end;
打印(输出);
end;
end;
打印("")
结束;
位律师回复
0条评论