C++项目参考解答:小试循环

Posted 迂者-贺利坚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++项目参考解答:小试循环相关的知识,希望对你有一定的参考价值。

【项目-小试循环】

  写出实现下面求解任务的程序【提示:m是一个变量,在程序中输入】
  (1)求1到m的平方和
  (2)求1到m间所有奇数的和
  (3)求1到m的倒数和,即

1+12+13+14+...+1m

  (4)求值:
1?12+13?14+...+(?1)(m+1)×1m

  (5)求m!,即
1×2×3×...×m


【参考解答】

  写出实现下面求解任务的程序【提示:m是一个变量,在程序中输入】
  (1)求1到m的平方和

#include <iostream>
using namespace std;
int main( )
{
    int n,m,total;
    cin>>m;
    n=1;
    total=0;
    while(n<=m)
    {
        total+=(n*n);
        n++;
    }
    cout<<"total="<<total<<endl;
    return 0;
}

或用for循环:

#include <iostream>
using namespace std;
int main( )
{
    int n,m,total;
    cin>>m;
    total=0;
    for(n=1;n<=m;n++)
    {
        total+=(n*n);
    }
    cout<<"total="<<total<<endl;
    return 0;
}

  (2)求1到m间所有奇数的和

#include <iostream>
using namespace std;
int main( )
{
    int n,m,total;
    cin>>m;
    n=1;
    total=0;
    while(n<=m)
    {
        total+=n;
        n+=2;
    }
    cout<<"total="<<total<<endl;
    return 0;
}

或用for循环:

#include <iostream>
using namespace std;
int main( )
{
    int n,m,total;
    cin>>m;
    total=0;
    for(n=1;n<=m;n+=2)
    {
        total+=n;
    }
    cout<<"total="<<total<<endl;
    return 0;
}

  (3)求1到m的倒数和,即

1+12+13+14+...+1m

#include <iostream>
using namespace std;
int main( )
{
    int n,m;
    double total;
    cin>>m;
    n=1;
    total=0;
    while(n<=m)
    {
        total+=(1.0/n); //注意1.0引发的类型转换,非常重要!
        n++;
    }
    cout<<"total="<<total<<endl;
    return 0;
}

或用for循环:

#include <iostream>
using namespace std;
int main( )
{
    int n,m;
    double total;
    cin>>m;
    n=1;
    total=0;
    for(n=1;n<=m;n++)
    {
        total+=(1.0/n); //注意1.0引发的类型转换,非常重要!
    }
    cout<<"total="<<total<<endl;
    return 0;
}

  (4)求值:

1?12+13?14+...+(?1)(m+1)×1m

#include <iostream>
using namespace std;
int main( )
{
    int n,m,sign;
    double total;
    cin>>m;
    n=1;
    total=0;
    sign=1; //用sign代表累加项的符号,这是处理一正一负累加的技巧
    while(n<=m)
    {
        total+=(sign*(1.0/n)); 
        n++;
        sign*=-1; //sign变号
    }
    cout<<"total="<<total<<endl;
    return 0;
}

或用for循环:

#include <iostream>
using namespace std;
int main( )
{
    int n,m,sign;
    double total;
    cin>>m;
    n=1;
    sign=1; //用sign代表累加项的符号,这是处理一正一负累加的技巧
    total=0;
    for(n=1; n<=m; n++)
    {
        total+=(sign*(1.0/n)); //注意1.0引发的类型转换,非常重要!
        sign*=-1; //sign变号
    }
    cout<<"total="<<total<<endl;
    return 0;
}

  (5)求m!,即

1×2×3×...×m

#include <iostream>
using namespace std;
int main( )
{
    int n,m;
    long fact; //阶乘值很大,数据类型方面考虑一些
    cin>>m;
    n=1;
    fact=1;
    while(n<=m)
    {
        fact*=n;
        n++;
    }
    cout<<m<<"! = "<<fact<<endl;
    return 0;
}

或用for循环:

#include <iostream>
using namespace std;
int main( )
{
    int n,m;
    long fact; //阶乘值很大,数据类型方面考虑一些
    cin>>m;
    fact=1;
    for(n=1;n<=m;n++)
    {
        fact*=n;
    }
    cout<<m<<"! = "<<fact<<endl;
    return 0;
}

以上是关于C++项目参考解答:小试循环的主要内容,如果未能解决你的问题,请参考以下文章

由于没有学习过C++,只有C语言基础,在C++项目代码中看到如下定义,望高手解答。

前端试题-小试牛刀

[C++潜心修炼] 小试牛刀

在编译c++代码时出现如下错误: 望速度解答,很急。。谢谢!

PHP项目开发经验整理

WebSocket小试牛刀