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;
}
时间: 2024-09-20 05:46:45

C++项目参考解答:小试循环的相关文章

C++程序设计实践学材系列(27)——1.8 实践“项目”参考解答

回到系列文章的目录--[系列文章目录] 回到本章目录--[第1章目录] 1.8 实践"项目"参考解答 本节与前面各节相关性极大,建议由前面各节看清项目要求,必要时再阅读本节. [项目1.1] #include <iostream> using namespace std; int main( ) { cout<<"C++,我会爱上你!"<<endl; return 0; } [项目1.2] #include <iostrea

2013-C++第15周项目参考解答链接集

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-折腾二维数组]创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中.输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"),再将数组"倒"着输出(即最后一行最后一列的最先输

2013-C++第17周项目参考解答链接集

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-体会函数参数传递] 设计一个程序,输入3个整数,将其按从大到小的顺序输出,要求 (1)排序功能通过函数实现 (2)写出两个版本的函数,一个采用传地址值的方法,另一个采用引用类型作参数 参考解答在:http://blog.csdn.net/sxhelijian/article/details/8362289(2012级第17周项目1) [项目2-用指针玩字符串]指

2013-C++第7周项目参考解答链接集

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 完整题目见:http://blog.csdn.net/sxhelijian/article/details/12356657 [项目1]简单计算问题体验 参考解答见:http://blog.csdn.net/sxhelijian/article/details/12710137 输入底面半径r和高h,输出圆柱体的表面积. 样例输入:3.5  9 样例输出:Area = 2

C++项目参考解答:求Fibonacci数列

[项目:求Fibonacci数列] Fibonacci数列在计算科学.经济学等领域中广泛使用,其特点是:第一.二个数是1,从第3个数开始,每个数是其前两个数之和.据此,这个数列为:1 1 2 3 5 8 13 21 34 55 89 --,请设计程序,输出这个数列,直到这个数字超过10000. [提示]数列可以表示为: {f1=f2=1fn=fn−1+fn−2,n>2 [参考解答] #include <iostream> using namespace std; int main( )

C++项目参考解答-求最大公约数

[项目-求最大公约数](1)输入两个数,并求出其最大公约数 #include <iostream> using namespace std; //自定义函数的原型(即函数声明) int main() { int a,b,g; cin>>a>>b; g=gcd(a,b); cout<<"最大公约数是: "<<g; return 0; } int gcd(int x,int y) //定义用于求两数的最大公约数的函数,函数只管求值

2013-C++第12周项目参考解答链接集

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-当年第几天] 定义一个函数,其参数为年.月.日的值,返回这一天为该年的第几天.要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果. 参考解答在:http://blog.csdn.net/sxhelijian/article/details/16330759 [项目2-太乐了]先听故事,再编程序. 故事是这样的:话说sin和cos是一

C++项目参考解答——小学生算术能力测试系统

[项目-小学生算术能力测试系统]通过本题学习一些系统函数. 设计一个程序,用来实现帮助小学生进行算术运算练习,它具有以下功能:提供10道加.减.乘.除四种基本算术运算的题目,每道题中的操作数是随机产生的,且操作数不超过2位数的正整数:练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息.最后显示做对了几道题. 参考解答: #include <iostream> #include<ctime> #include<cstdlib> int q

C++项目参考解答:累加求圆周率

[项目-累加求圆周率] 用如下公式求π的近似值(计算直到最后一项的绝对值小于10−5) π4=1−13+15−17+... [参考解答] #include <iostream> using namespace std; int main( ) { int n,sign; double total,f; n=1; total=0; sign=1; f=1; //用f代表待累加的每一项的绝对值 while(f>1e-5) { total+=(sign*f); n+=2; f=1.0/n; s