第2周 项目3 小试循环

来源:互联网 发布:centos多线程下载命令 编辑:程序博客网 时间:2024/06/03 18:49

题目链接:小试循环

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

12+22+32...m2

  (2)求1到m间所有奇数的和
  
1×2×3×4...×m

  (3)求1到m的倒数和,即
1+12+13+...+1m

  (4)求值:
  
112+1314+...+(1)(m+1)×1m

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

  

源代码: tryloop.cpp

/*cpoyright(c++) 2017. *All rights reserved *文件名称:小试循环 *作    者:xc *完成日期:2017318日 *版 本 号:v1.0 * *题目链接:http://blog.csdn.net/sxhelijian/article/details/50825117 *问题描述: 1.1到m的平方和; *          2.1到m间所有奇数的和; *          3.1到m的倒数和,即 1+1/2+1/3+1/4+...+1/m *          4.1-1/2+1/3...+(-1)(m+1)*1/m; *          5. 求 m!; *输入描述:输入变量m; *程序输出:输出5个表达式结果; */ #include <iostream> using namespace std;// 1到m的平方和;double expression1 (int &m){    double total;    for (int n=1; n<=m; n++) {        total += n*n;    }    return total;}// 1+3+5+...+m;double expression2 (int &m){    double total;    for (int n=1; n<=m; n++) {        if (n%2 != 0) {            total += n;        }    }    // 转换思维 for (int n=1; n<=m; n+=2)  total+=n;    return total;}// 1+1/2+1/3+1/4+...+1/mdouble expression3 (int &m){    double total=0;    for (int n=1; n<=m; n++) {        total += 1.0/n; // 注意1.0引发的类型转换    }    return total;}// 1-1/2+1/3...+(-1)(m+1)*1/m;double expression4 (int &m){    double total=0;    for (int n=1; n<=m; n++) {        if (n%2 == 0) {            total += -(1.0/n);        } else {            total += (1.0/n);        }        total += n*n;    }    return total;}// 1*2*3*...*m;double expression5 (int &m){    double total=1;    for (int n=1; n<=m; n++) {        total *= n;    }    return total;}int main(){    int m;    cout << "输入变量m:";    cin >> m;    cout << "表达式 1 结果为:" << expression1(m) << endl;    cout << "表达式 2 结果为:" << expression2(m) << endl;    cout << "表达式 3 结果为:" << expression3(m) << endl;    cout << "表达式 4 结果为:" << expression4(m) << endl;    cout << "表达式 5 结果为:" << expression5(m) << endl;    return 0;}

总结

注重基础:
计算除法时,注意等式两边整型浮点型的转换

    int n, m;    double total;    ...    total += (1.0/n); // 注意1.0引发的类型转换,非常重要!

正负累项加时,记得使用标记变量

    int n, m, sign;    sign = 1; // 用sign代表累加项的符号,这是处理一正一负累加的技巧    ...    sign *= -1; // sign变号

Markdown编辑 & Latex数学公式

basic tutorial and quick reference 基本教程和快速参考
you can ask quetions here
第一次用Markdown编辑博客,打公式,感觉还不错,值得一试哟~


0 0
原创粉丝点击