do-while语句

来源:互联网 发布:mac高光 编辑:程序博客网 时间:2024/04/19 12:39

一、将正整数分解成质因数。
例如:将一个大于一的正整数分解成质因数。
输入90,打印出90=2x3x3x5。
题目分析:为了将n分解成质因数,应先找到一个最小的质数k,然后按照步骤完成。
1、如果这个质数恰好等于n,则说明分解质因数的过程已经结束,输出即可。
2、如果n!=k,但是能被k整除,则应该打印出k的值,并用n除以k的商作为新的正整数n,重复执行第1步。
3、如果n不能被k整除,则用k+1作为新的k,重复执行第1步。

#include<iostream.h>void main(){    int n,k=2;    cin>>n;    cout<<n<<"=";    while(n!=k)    {        if(n%k==0)        {            cout<<k<<"*";            n=n/k;        }        else            k++;    }    cout<<n;}

do-while循环
do-while循环语句是实现“直到”型循环结构的语句。
一般形式是:
do
语句;
while(表达式);
语义是:先执行循环语句一次,在判断表达式的值,若为真(非0)则继续循环,否则终止循环。
例如:用do-while计算前n项的平方和。

#include<iostream.h>void main(){    int n,i=1;    int sum=0;    cin>>n;    do    {        sum=sum+i*i;        i++;    }while(i<=n);    cout<<sum;}

使用规则
在if或者while语句中,表达式后不能加分号,而在do-while语句中表达式后面必须加分号。

例题一:从键盘上输入一个整数,计算其位数,例如:输入12345,输出结果是5;输入-123,输出结果是3,输入0,输出结果是0;
题目分析:一个整数由多位数字组成,计算位数的过程需要一位一位的进行,因此是个循环过程,循环次数由位数本身决定,由于需要计算的整数需要输入,所以无法知道循环次数,但任何整数需要至少一位,也就是说至少需要一次循环,因此可以选择do-while循环。

#include<iostream.h>void main(){    int n;    int count=0;    cin>>n;    if(n<0)        n=-n;    do    {        n=n/10;        count++;    }while(n>0);    cout<<count;}

例题 二、用格里高利公式求pai的值。要求精确到最后一项的绝对值小于1e-5.
公式为:pai/4=1-1/3+1/5-1/7+……

#include<iostream.h>#include<math.h>void main(){    int a=1,plag=1;    double stem=0,pi=0;    do{        stem=plag*1.0/a;        pi=pi+stem;        a=a+2;        plag=-plag;    }while(fabs(stem)>1e-5);        pi=pi*4;    cout<<pi;}