- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析 第2版 吕国英 第三章课后习题答案
3.1//计算2+22+222+...+222……2
void main()
{
int i,n,sum=0;
print(请输入最后一个因子的位数\n);
scanf(%d,n);
for(i=1;i=n;i++)
sum=sum+((int)pow(10,i)-1)/9*2;
print(2+22+222+...+222……2=%d\n,sum);
}
3.2显示{5,7,4,8,9,1}的方阵方式
main()
{
int i,j,t,ori[6]={5,7,4,8,9,1};
for(i=0;i6;i++)
{
for(j=0;j6;j++)
{
t=(j-i)0?j-i+6:j-i;
printf(%d ,ori[t]);}
printf(\n);
}
}
3.3
main()
{
int n;
int **up(int **array);
scanf(%d,n);
int arr[1][1]={{n*n}};
for(j=1;jn;j++)
arr=up(**arr,j);
}
int **up(int **array,n)
{
int upN=n+1;
int[upN][upN] tem;
tem[1][1]=array[1][1]-pow(n+1,2);
for(i=1;i=n;i++)
tem[1][i]=tem[1][i-1]+1;
for(i=1;i=n;i++)
tem[n][i]=tem[n][i-1]+1;
for(i=1;i=n;i++)
tem[n][n-i]=tem[n][n+1-i]+1;
for(i=1;in;i++)
tem[1][n-i]=tem[1][n-i+1]+1
return **tem;
}
3.4
main()
{
int i,j,t=0,next=1,n;
printf(请输入n\n);
scanf(%d,n);
printf(显示效果如下\n);
for(i=1;i=n;i++)
{
for(j=1;j=n-i+1;j++)
{
if(j==1)
t=next;
else
t=t+i+j-1;
if(j==2)
next=t-1;
printf(%d ,t);
}
printf(\n);
}
}
//思想:每一行的第二个数为next,下一行的第一个数为next-1
3.5
main()
{
int n,i,j,k;
int arr[100][100]={{0}};
//动态定义数组太难,所以在系统直接定义一个100*100的方阵,可以处理部分小问题
for(i=0;i100;i++)
for(j=0;j100;j++)
arr[i][j]=0;
printf(请输入n\n);
scanf(%d,n);
/*if(n%2==0)
{
for(k=0;kn/2;k++)
for(i=k;in-k;i++)
for(j=k;jn-k;j++)
arr[i][j]=k+1;
}
else
{
for(k=0;k(n+1)/2;k++)
for(i=k;in-k;i++)
for(j=k;jn-k;j++)
arr[i][j]=k+1;
}*///可将第一个for循环中的判断条件统一改为k(n+1)/2
for(k=0;k(n+1)/2;k++)
for(i=k;in-k;i++)
for(j=k;jn-k;j++)
arr[i][j]=k+1;
printf(显示效果如下:\n)
for(i=0;in;i++)
{
for(j=0;jn;j++)
printf(%2d,arr[i][j]);
printf(\n);
}
}
3.7
main()
{
int ack(int m,int n);
int m,n,score;
printf(请输入ackermann函数的m,n:\n);
printf(m:);
scanf(%d,m);
printf(n:);
scanf(%d,n);
score=ack(m,n);
printf(ack(%d,%d)=%d\n,m,n,score);
}
int ack(int m,int n)
{
if(m==0)
return n+1;
else
if(n==0)
return ack(m-1,1);
else
return ack(m-1,ack(m,n-1));
}
3.8
main(
您可能关注的文档
最近下载
- 信息系统安全管理记录表单汇编.docx
- 炼铁厂1080m3高炉试车方案.doc
- 生物大数据(福建农林大学)中国大学MOOC 慕课 章节测验期末考试答案.docx
- 中国传统节日——冬至节日介绍(教学设计)全国通用五年级上次综合实践活动.docx
- AP微积分BC (2018年真题)全套含选择题及答案.pdf VIP
- OEM代工与加工合同协议书范本 详细版.docx
- 关于农业自动化灌溉浇灌滴灌控制系统设计有关 的外文文献翻译成品:自动灌溉系统的设计与实现(中英文双语对照).docx
- 宪法多选题新题.doc VIP
- Bain-德邦产品融合项目里程碑汇报(上会终稿)-20170525.pptx VIP
- 宪法考试多选题 .pdf VIP
文档评论(0)