频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用模拟精灵解百度编程大赛试题

来源:一鹤 作者:一鹤 出处:巧巧读书 2005-11-01 进入讨论组
  • 关 键 词:
  • c++
下一页 1 2 3 4 
引用:http://www.qqread.com/cpp/d420287030.html

  原题要求用c++做的,不过用模拟精灵比较快,但未仔细分析优化。

  第一题 连续正整数(10分)

  题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
  15=1+2+3+4+5
  15=4+5+6
  15=7+8

  请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。

  输入数据:一个正整数,以命令行参数的形式提供给程序。

  输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出“NONE”。

  例如,对于15,其输出结果是:
  1 2 3 4 5
  4 5 6
  7 8

  对于16,其输出结果是:
  NONE

  评分标准:程序输出结果是否正确。

print(str);

while( nStop() ) do
delay(100)

print("按".._STOPHKEY..",然后输入一个数字退出程序")
print("请输入一个正整数:")

ns = io.read();

while( nStop() and ( not tonumber(ns) ) )do
print("请输入一个有效整数");
ns = io.read();
end

n = tonumber(ns)

print("")

for i=1,n/2+1,1 do
local k = 0;
local j2 =0;
for 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.." = "..i;
for y=i+1,j2,1 do
out = out.." + "..y
end;
print(out);
end;
end;

print("")

end;



更多文章 更多内容请看Java编程开发手册专题,或进入讨论组讨论。
更多专题 【深 度 阅 读】 相 关 文 章
    下一页 1 2 3 4 
    收藏此文】【 】【打印】【关闭
    相关图文阅读
    频道图文推荐
    健 康 咨 询
    时 尚 咨 询
    巧巧读书宗旨
    相关专题
    讨论组问题推荐
    站内各频道最新更新文档
    站内最新制作专题
    热门关键字导读
    Photoshop教 程照片处理 照片制作 PS快捷键 抠图
    计 算 机 故 障XP系统修复
    艺 术 与 设 计设计 流媒体 设计欣赏 边框
    计 算 机 安 全ARP
    站内频道文章精选
    巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章