第三十四讲项目1-分数的累加
来源:互联网 发布:行业分析 知乎 编辑:程序博客网 时间:2024/06/15 03:22
任务和代码:
第一种方法:
/**Copyright (c)2017,CSDN学院*All rights reserved.*文件名称: main.c*作 者: 伍志鹏*完成日期: 2017年9月13日*版本号: v1.0**问题描述: 编程序,输出1/3-3/5+5/7-7/9…+19/21的结果*程序输出: 1/3-3/5+5/7-7/9…+19/21的结果*提示:如果直接解决上面的问题有困难,可以设计一条“由易到难”的路线,逐渐解决其中要解决的问题,让自己的思路明朗起来。*(1)1+2+...+20 ——这个应该会*(2)1+1/2+1/3+…+1/20 ——分数的累加,注意两个整型相除,商也为整型,而显然求和结果应该是小数*(3)1/2+2/3+3/4+…+19/20 ——分子不全是1了,找找规律,稍加改动就好了*(4)1/2-2/3+3/4-…+19/20 ——要累加的值一正一负倒腾,用pow(-1,i)是个效率很低的做法,不推荐使用。技巧:专门设置一个变量s表示累加项的符号,取值随着循环,每次乘以-1,从而在+1、-1之间变化,循环加求和的累加要用累加的项(i/(i+1))乘以这个表示符号的s。*(5)1/3-3/5+5/7-7/9…+19/21 ——这是我们的目标。品品这种思路,一口吃不成胖子,学会一口一口吃饭。用心编程,再大的障碍,也会一个一个地排除。*/#include <stdio.h>#include <stdlib.h>int main(){ int iDenom=3; double sym=1,dSum=0,iMole=1.0; do{ dSum=dSum+sym*(iMole/iDenom); iDenom+=2; iMole+=2; sym=-sym; }while(iDenom<=21); printf("sum= %lf ",dSum); return 0;}第二种方法:
int main(){ int i,s=1; double sum=0; for(i=1;i<=10;++i) { sum=sum+s*(double)(2*i-1)/(2*1+1); s=-s; } printf("sum= %lf ",sum);}
运行结果:
总结:
每次写算法的时候,都要仔细观察题目中有什么特点,这样才能够快速的把算法写好。
阅读全文
0 0
- 第三十四讲项目1-分数的累加
- 第三十四将项目四 分数的累加
- 第三十四讲项目2.1-麻烦的累加涨功夫
- 第三十四讲项目2-麻烦的累加涨功夫
- 第三十四讲 项目 用循环累加
- 第34讲项目1——分数的累加
- 第三十四将项目1.1-1+1/2+1/3+…+1/20 ——分数的累加
- 第34讲-项目一-分数的累加
- 第三十四讲|用循环累加
- 第三十四讲项目1.4——1/2-2/3+3/4-…+19/20 ——要累加的值
- 第三十四将项目四 麻烦的累加涨功夫
- 第三十四课 用循环累加 【项目1-2】
- 项目二 分数的累加
- 项目二 分数的累加
- 项目34.1 分数的累加
- 项目10-分数的累加
- 第三十四讲项目2.2
- 第三章数程序设计初步--循环结构项目2拓展1分数的累加(使用不同的循环语句)
- Android开发之BlueTooth--最简单的Andorid传统蓝牙通讯Demo
- Python中函数的参数定义和可变参数
- 关于内存加载DLL后修复重定位的问题
- ODOO更多中添加按钮
- 解压.tar.gz出错gzip: stdin: not in gzip format tar: /Child returned status 1 tar: Error is not recoverab
- 第三十四讲项目1-分数的累加
- 莫名被封杀
- ButterKnife Fragment null
- spring boot 整合redis 将代码记录以备以后使用
- React Native文件上传下载
- java常用的分析工具
- SecureCRT的快捷键
- 数据结构-动态数组
- 正则化方法:L1和L2 regularization、数据集扩增、dropout