第04章习题解答 下载本文

cout<<\请输入一正数。\ cin>>a; x1=a/2; do{

x0=x1;

x1=2*x0/3+a/(3*x0*x0); }

while(fabs(x1-x0)>1e-5);

cout<

14.试用for语句设计程序,计算100以内的奇数和。

#include #include

using namespace std;

int main() {

int s=0;

for(int i=1;i<100;i+=2) s+=i;

cout<<\以内的奇数和为:\ return 0; }

15.例4-14程序中用了指针自增走步。试改为指针加整数走步,写出程序。

#include using namespace std;

int main() {

char *p=\

for(int i=0;*(p+i);i++) cout<<*(p+i); cout<

16.试设计一程序,输入一个整数,能输出其所有因子。

#include using namespace std;

int main() {

int n,k=0;

cout<<\请输入一个整数。\ cin>>n;

for(int i=1;i

if(n%i==0){

cout<

if(k%8==0) cout<

cout<

17.设计一程序,输出所有的水仙花数。所谓水仙花数是一个三位数,其各位数字的立

333

方和等于该数本身。例如:153=1+5+3 153就是水仙花数。

#include using namespace std;

int main() {

int a,b,c,i;

for(i=0;i<1000;i++){

a=i/100; b=i0/10; c=i;

if(a*a*a+b*b*b+c*c*c==i) cout<

cout<

18.求满足以下条件的三位数n,它除以11(整数相除)所得的商等于n的各位数字的平方和,且其中至少有两位数字相同。例如,131除以11的所得的商是11,而131的各位数字的平方和也为11,二者相等。且131有两位数字相同。所以131是满足条件的三位数。

#include using namespace std;

int main() {

int a,b,c,i;

for(i=0;i<1000;i++){

a=i/100; b=i0/10; c=i;

if(((i/11)==(a*a+b*b+c*c))&&((a==b)||(b==c)||(c==a))) cout<

cout<

19.设计一程序,求出200~300之间的所有素数。

#include #include #include

using namespace std;

int main() {

int n,k;

for(n=200;n<300;n++){

for(k=2;k<=sqrt(n);k++) if(n%k==0) break; if(!(k<=sqrt(n))) cout<

cout<

20.设计一程序,求出满足以下条件的最小的n值和s值:

s=1+2+3+···+n,且s≥600 #include using namespace std;

int main() {

for(int n=1,s=0;s<600;n++) s+=n;

cout<<\满足s>600,最小的n是:\ cout<<\满足s>600,最小的s是:\ return 0; }

21.求π/2 的近似值的公式为:

?2?22442n2n···?···· ????·?13352n?12n?1其中,n=1、2、3···· 。设计一程序,求出当n=1000时π的近似值。 #include using namespace std;

int main() {

double a,n,pi,p=1; for(n=1;n<=1000;n++){

a=2*n/(2*n-1)*2*n/(2*n+1); p*=a; }

pi=p*2;

cout<<\ return 0; }