- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(20012002年普及复赛试题及分析
2001第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题普及组
题一 数的计算(20分) 程序名:a01.pas/c/c++
问题描述
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n=1000),然后对此自然数按照如下方法进行处理:
1.????????? 不作任何处理;
2.????????? 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3.????????? 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
样例:? 输入:? 6 输入文件名: input1.txt
?????????? 满足条件的数为? 6 (此部分不必输出) 输出文件名: output1.txt
?????????????????? ??????? 6
16
????????????????????????? 26
???????????????????????? 126
????????????????????????? 36
???????????????????????? 136
输出:? 6 分析: 经典数的拆分问题。
//裸奔搜索
#includestdio.h
#includestdlib.h
long t;
void try(long n)
{
long i;
t++;
for (i=1; i=n / 2;i++)
try(i);
}
Int main()
{
FILE *fin,*fout;
fin=fopen(input1.txt,r);
fout=fopen(output1.txt,w);
long n;
fscanf(fin,%ld\n,n);
try(n);
fprintf(fout,%ld\n,t);
fclose(fin);
fclose(fout);
return 0;
} //记忆化搜索
#includestdio.h
#includestdlib.h
long i,n;
#define MAXN 1000
long h[MAXN]={0};
void dfs(long m)
{ long i;
if (h[m]!=-1) exit;
h[m]=1;
for (i=1; i=m / 2;i++)
{ dfs(i);
h[m]+=h[i];
}
}
main()
{
FILE *fin,*fout;
fin=fopen(input1.txt,r);
fout=fopen(output1.txt,w);
fscanf(fin,%ld\n,n);
for (i=1;i=n;i++)
h[i]= -1;
dfs(n);
fprintf(fout,%ld\n,h[n]);
fclose(fin); fclose(fout);
return 0;
} //动态规划
#includestdio.h
#includestdlib.h
long i,j,n;
#define MAXN 1001
long h[MAXN]={0};
main()
{
FILE *fin,*fout;
fin=fopen(input1.txt,r);
fout=fopen(output1.txt,w);
fscanf(fin,%ld\n,n);
for (i=1;i=n;i++)
{
h[i]= 1;
for(j=1;j=i / 2;j++)
h[i]+=h[j];
}
fprintf(fout,%ld\n,h[n]);
fclose(fin);
fclose(fout);
return 0;
} //动态规划优化
#includestdio.h
#includestdlib.h
long i,j,n;
#define MAXN 2001
long h[MAXN]={0};
long sum[MAXN]={0};
main()
{
FILE *fin,*fout;
fin=fopen(input1.txt,r);
fout=fopen(output1.txt,w);
fscanf(fin,%ld\n,n);
for (i=1;i=n;i++)
{
h[i]= 1+sum[i / 2];
sum[i]=sum[i-1]+h[i];
}
fprintf(fout,%ld\n,h[n]);
fclose(fin);
fclose
您可能关注的文档
最近下载
- 2025年数字化农场管理方案研究项目可行性研究报告.docx
- 幼儿园社会治安最小应急单元管理制度.docx VIP
- PPT《建筑电气与智能化通用规范》GB 55024-2022 解读(OCR).pdf VIP
- 2025下半年教师资格考试新版试卷真题附答案(高中信息技术).docx VIP
- 生理学基础第十章-神经系统.ppt VIP
- ABB ACS180 drives User interface guide 手册(英语)说明书.pdf
- 驳岸工程施工方案.pdf VIP
- 股权激励变成股权纠纷通用.pdf VIP
- 南芯产品规格书SC8886.pdf VIP
- 胃食管反流病中西医结合诊疗专家共识(2025年).pptx VIP
原创力文档


文档评论(0)