一、问题及代码
/*
* 文件名称: 分数的累加
* 作 者: 黄敏
* 完成日期: 2016 年 4 月 21 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分: 输出1/3-3/5+5/7-7/9…+19/21的结果
* 输入描述:注意两个整型相除,商也为整型,而显然求和结果应该是小数;
* 问题描述:我的第四次实验项目
* 程序输出:输出1/3-3/5+5/7-7/9…+19/21的结果
* 问题分析: 分数的累加,注意两个整型相除,商也为整型;
* 算法设计: 专门设置一个变量s表示累加项的符号,取值随着循环,每次乘
以-1,从而在+1、-1之间变化,循环加求和的累加要用累加的项(i/(i+1))乘以这个表示符号的s。
*/
#include<iostream>
using namespace std;
int main()
{
double i,j,p,q=-1,s=0,n=-1;
for(i=1;i<=19;i=i+2)
{
j=i+2;
{p=i/j;
q=q*n;
s=s+q*p;}
}
cout<<s<<endl;
}
二、运行结果
三、心得体会
①分数的累加,首先应该注意整型的运用,两数相除的时候应用double型而不是int。
②for语句的使用,应该注意最后的数字的安排。如果i=i+2,最后应该是19。
③一正一负的替换尽量减少函数的使用,避免增加程序运行的复杂和时间。
④采用技巧:专门设置一个变量s表示累加项的符号,取值随着循环,每次乘以-1,从而在+1、-1之间变化,循环加求和的累加要用累加的项(i/(i+1))乘以这个表示符号的s。