第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx

上传人:b****1 文档编号:15367219 上传时间:2022-10-29 格式:DOCX 页数:16 大小:60.63KB
下载 相关 举报
第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx_第1页
第1页 / 共16页
第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx_第2页
第2页 / 共16页
第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx_第3页
第3页 / 共16页
第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx_第4页
第4页 / 共16页
第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx

《第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

第三章实验4 for语句及嵌套综合习题答案Word文档格式.docx

1+2!

="

s;

}

30!

如果用整数存储会溢出

floats=0,t=1;

intn;

=30;

学生另解,双重循环

思路:

sum=0;

for(i=1;

i<

i++)

{

求i!

放入f;

;

sum=sum+f;

main()

{inti,j,f,sum=0;

for(i=1;

f=1;

for(j=1;

j<

=i;

j++)

f=f*j;

sum+=f;

}

cout<

+...+10="

sum<

endl;

return0;

}

2、求出1-1000之内的完全平方数。

所谓的完全平方数是指能够表示成为另一个整数的平方的整数。

要求每行输出8个数。

(课本P66页四、6)

输出1000以内的完全平方数最简单的方法就是从1开始求平方并输出,直到i的平方大于1000.

至于每行输出8个数,i代表找到的第i个完全平方数,i是8的倍数时换行,红色代码实现每8个换行

#include<

voidmain()

for(inti=1;

i*i<

=1000;

'

\t'

if(i%8==0)cout<

}格式输出另解,可尝试去掉setiosflags设置实现右对齐

math.h>

iomanip.h>

//如果使用了控制符,要加iomanip头文件

voidmain()

{

inti;

for(i=1;

setw(9)<

setiosflags(ios:

:

left)<

i*i;

//左对齐,指定输出项的宽度,在输出的数据项之间进行隔开

if(i%8==0)cout<

另解

这个方案要先找到最大的平方数小于1000的数k=sqrt(1000),这样循环次数就可以确定了

#include<

inti,k=sqrt(1000);

for(i=1;

=k;

{

setw(4)<

if(i%8==0)cout<

\n'

另解:

这个偷懒了,用break中断循环

#include<

intn=0;

40;

intj=i*i;

if(j>

1000)break;

if(n%8==0)cout<

n++;

setw(8)<

j;

这个解决方法比较麻烦,从1-1000依次判断i是否是完全平方数,如果一个数的平方根的平方等于该数,这说明此数是完全平方数

{longinti,j=0,x;

for(i=1;

x=(long)sqrt(i);

if(x*x==i)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/

i;

j++;

if(j%8==0)

\n"

}

3、一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如:

6的银子为1,2,3,而6=1+2+3,因此6是“完数”。

编程序找出1000之内的所有完数,并按下面格式输出其因子:

6,itsfactorsare1,2,3

参照谭浩强C程序设计第四版学习辅导P43页第9题

或谭浩强C++程序设计题解与上机辅导P26页第20题

for(m=2;

m<

找到m因子并累加起来

如果满足完数定义,找到所有因子并输出

main()

intm,s,i;

m++)

s=0;

m;

i++)//内循环找到m的所有因子并累加到s变量

if((m%i)==0)s=s+i;

if(s==m)

isa完数"

itsfactorsare:

i++)//内循环找m的所有因子并输出

if(m%i==0)cout<

"

另解:

因子之间带逗号的

for(inti=2;

intsum=0;

for(intl=1;

l<

l++)

if(i%l==0)sum+=l;

if(sum==i)

cout<

itsfactorsare"

sum=0;

{

if(i%l==0)cout<

"

}

\b'

'

//'

退格符,相当于backspace把多余的逗号去掉

4、以表格格式显示1到10的乘法表,如下图所示。

思路:

先输出表头

用row做行索引,col做列索引

for(row=1;

row<

row++)

输出第row行第一列和分隔符|

输出第row行乘法表

换行

{introw;

/*行索引*/

intcol;

/*列索引*/

\n乘法表:

X|"

/*表头*/

for(col=1;

col<

col++)

col;

---+"

42;

-'

for(row=1;

row<

row++)

setw

(2)<

|"

col++)/*内循环(列)*/

row*col;

1、译密码。

为使电文保密,往往按一定规律将电文转换成密码,收报人再按约定的规律将其译回原文。

例如,可以按以下规律将电文变成密码:

将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。

见下图。

字母按上述规律转换,非字母字符不变。

如″Wonderful!

″转换为″Asrhivjyp!

″。

输入一行字符,要求输出其相应的密码。

iostream>

usingnamespacestd;

intmain()

{charc;

Pleaseinput"

while((c=getchar())!

='

if((c>

a'

&

&

c<

z'

)||(c>

A'

Z'

))

c=c+4;

if(c>

+4||c>

)c=c-26;

c;

解2:

v'

V'

elseif(c>

w'

||c>

W'

)c=c-22;

2、求Sn=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字。

2+22+222+2222+22222(此时n=5),a,n由键盘输入。

参照谭浩强C程序设计第四版学习辅导P41页第5题

或谭浩强C++程序设计题解与上机辅导P24页第17题

思路:

要求用户输入a和n

=n;

计算第i项tn

把第i项累加到sn中

计算第i项用内循环实现太麻烦,可以用上一轮循环的第i-1项推出,比如第i-1项为222,求2222,可用222*10+2(tn=tn*10+a)或者222+2000(tn=tn+a,a每次循环都乘以10)

{inta,n,sn=0,tn=0;

a,n=:

cin>

>

a>

n;

for(inti=1;

tn=tn*10+a;

//赋值后的tn为i个a组成数的值

sn=sn+tn;

//赋值后的sn为多项式前i项之和

a+aa+aaa+...="

sn<

另解:

inta,n,sn=0,tn=0;

tn=tn+a;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1