高露洁是哪个国家的:NOI’2001第七届计算机分区联赛复赛试题第1题(高手进)

来源:百度文库 编辑:高考问答 时间:2024/05/04 19:10:40
题一 数的计算(20分)

问题描述

我们要求找出具有下列性质数的个数(包含输入的自然数n):

先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:

1.不作任何处理;

2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;

3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.

样例: 输入: 6

满足条件的数为 (此部分不必输出)
6
16
26
126
36
136
输出:6

高手们编一下吧,把编译程序附上行不行?一定要正确的哦,根据大家的详细程度和积极程度,我会追加分数的哦,搞不好100分就到你手上了哦!!
本人留言:
"zhoujiu432600"先生(或女士):非常感谢您的答案,但是不知道由于什么因素,我看不懂,也许是语言不一样,很抱歉.

"wtj0987"先生(或女士):非常感谢您的标准答案,但是有错误,我采纳的前提是没有错误的,很抱歉.

"baihacker"先生(或女士):光说不做谁都行,可以编个程序看看阿

现在沦落到坐网页了!所以手上就一个dreamweaver!随便写写!不要笑话!没有加差错检查!输入的时候注意一下!直接把代码考到txt中然后改名成html就可以运行。
修改一下加上注释!可能是算法的原因,输入的数不要大了,我输入111结果ie死了!呵呵

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="post" action="">
<input type="text" name="t1">
<input type="button" name="Submit" value="提交" onClick="javascript:formSub();">
</form>
<script language="javascript">
var strV="";//保存最后结果的字符串
var intV=0;//当前需要分析的数字
var cs=0;//计算一共有多少中方法

//一个递归函数,ints是需要分析的数,lj是插入到开头的数字
//如果是第一次,lj的值为0
//比如是6 ,第一次是 6,0,然后递归6,1如此类推
function dg(ints,lj)
{
var ban=0;
if(lj<1)
{
ban=ints/2;
}else{
ban=lj/2;
}//得到要分析的数的界限值

for(var i=1;i<=ban;i++) //开始循环了,一次取出放在前面的数
{
var temps="";
temps=i+""+ints;cs++;//得到生成的新数
strV=strV+","+temps;//把新数加到显示变量中
dg(parseInt(temps),i);//递归,(新的数,加再前面的数)

}
return ;//实在是没有什么加的了当然就返回了

}

//正是运行的函数
function formSub()
{
//得到输入的数字
intV=form1.t1.value;
strV=form1.t1.value;
//开始递归,(起始,0)
dg(intV,0);
//递归完成得到所有结果,用弹出对话框显示出来
alert("一共有"+(cs+1)+"种!分别是:"+strV);
//把所有的全局变量重新初始化
strV="";
intV=0;
cs=0;
}

</script>
</body>
</html>

program 2001-No1;
var
N,I,J:integer;
F:array[0..1000]of Extended;
begin
readln(N);
F[1]:=1;
for I:=F[I-1] do
begin
for I mod 2=0 then F[I]:= F[I]+F[I div 2];
end;
writeln(F[N]:0:0);
End.

不要有什么怀疑这是标准答案!

比较简单
不过没有时间写呀?

楼上的,我看不懂!!!