问题 C: 数列计算I(点击)

时间限制: 1 Sec  内存限制: 128 MB

                                                                            提交: 496  解决: 250

                                                                [提交] [状态] [讨论版] [命题人:admin]

题目描述

有一列数是:4/7, 7/11, 11/18, 18/29, 29/47, 47/76 „„请找出这个数列的规律,编写程序计算并输出这个数列的第 N 项(要求是分数形式),并计算这个数列的前 N 项和(结果四舍五入保留两位小数)。(其中:3≤N≤30)。

输入

只有一行,包含1个符合题目要求的正整数N。

输出

共有两行。

第一行如样例中的一个特定格式的分数表示这个数列的第N项;

第二行仅包含一个数表示这个数列的前N项的和。

样例输入

复制样例数据

6

样例输出

47/76
3.68

思路:

主要是四舍五入问题 当时编译器还有问题 刚才才刚刚发现 明明强制转换了变四舍五入 运行后还是错误的答案 但是提交了就正确

浪费了不少时间。

代码:

#include<stdio.h>
int main()
{
int a[35],i,n;
double sum[35];
a[1]=4,a[2]=7;
for(i=3;i<=31;i++){
a[i]=a[i-1]+a[i-2]; //打表把每个分数的分子保存进数组 其实还可以更简单:将分母保
} //存下来每次都直接计算sum 但是开始没想起来 就在下面多加了个
sum[1]=4.0/7.0; //for循环
for(i=2;i<=30;i++){
sum[i]=sum[i-1]+(a[i]/(a[i+1]*1.0));
}
scanf("%d",&n);
printf("%d/%d\n",a[n],a[n+1]);
printf("%.2lf\n",(int)(sum[n]*100+0.5)/100.0); //四舍五入方法(小数位)
return 0;
}

方法总结:

1.不保留小数的四舍五入:

加头文件:#include<math.h>

int a=round(a1)     //a代表转换后的值  a1代表转换前的浮点型数

2.保留一位小数的四舍五入:

a=(int)(a1*10+0.5)/10.0;     //a 和a1 的含义同上

3.保留两位小数的四舍五入:

a=(int)(a1*100+0.5)/100.0;     //a 和a1 的含义同上

注意:最后所除的一定是浮点型的10.0 和100.0 不然就会错误

其他小数点后位数的转换可以以此类推

测试:

#include<stdio.h>
#include<math.h>
int main()
{
double a1=1.5,a2=1.44,b1=1.44,b2=1.46,c1=1.445,c2=1.444;
int a11=round(a1);
int a12=round(a2);
double b11=(int)(b1*10+0.5)/10.0;
double b12=(int)(b2*10+0.5)/10.0;
double c11=(int)(c1*100+0.5)/100.0;
double c12=(int)(c2*100+0.5)/100.0;
printf("%d %d %.1lf %.1lf %.2lf %.2lf\n",a11,a12,b11,b12,c11,c12);
return 0;
}

结果:

数列计算I(整理四舍五入)的更多相关文章

  1. 【转载】 C#使用Math.Round方法对计算结果进行四舍五入操作

    在C#的数值运算中,有时候需要对计算结果进行四舍五入操作,此时就可使用内置方法Math.Round方法来实现四舍五入操作,Math.Round方法有多个重载函数,支持设置有效位数进行四舍五入,如果没有 ...

  2. 斐波那契数列计算html代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 题目1442:A sequence of numbers(数列计算以及二分求幂运用)

    题目链接:http://ac.jobdu.com/problem.php?pid=1442 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  4. JS数字计算精度误差的解决方法

    本篇文章主要是对javascript避免数字计算精度误差的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0. ...

  5. double四舍五入,商品金额大小写转换,设置货币的小数位数跟格式输出,进制转化

      1:计算double值四舍五入的方法 对小数数值进行四舍五入,首先应该确认保留小数位, 如果数值的小数精度大于保留小数位,那么开始四舍五入计算.四舍五入的方法非常简单,在所有要丢失精度的小数位中加 ...

  6. 不要在精确计算中使用float和double类型

    http://blog.csdn.net/androiddevelop/article/details/8478879 一  问题描述 float和double类型不能用于精确计算,其主要目的是为了科 ...

  7. 保留n位四舍五入小数

    一:可选择保留位数,注释很解释的很详细,上图 二:全部代码 using System; using System.Collections.Generic; using System.Component ...

  8. 关于C/C++的四舍五入方向

    今天在刷题过程中发现了一个特别奇怪的现象,printf() 的精度控制不是按照4舍5入,而是按照5舍6入, 例如: printf("%.2f\n",0.145) printf(&q ...

  9. python numpy 科学计算通用函数汇总

    import numpy as np #一元函数 #绝对值计算 a = -1b = abs(a)print(b)输出: 1 #开平方计算 a = 4b = np.sqrt(a)print(b)输出: ...

随机推荐

  1. python—day01_环境安装

    搭建环境 1.win10_X64,其他Win版本也可以. 2.安装python.()3.PyCharm版本:Professional-2016.2.3. 在Windows上安装Python 首先,根据 ...

  2. 计蒜客 - Fantastic Graph

    题目链接:https://nanti.jisuanke.com/t/31447 知识点: 最大流 题目大意: 给定一个二分图,左边有 $N$ 个点,右边有 $M$ 个点,给出 $K$ 条边.问是否能从 ...

  3. java——定时任务

    java定时任务直接看代码 public void timeTask(){ Timer timer = new Timer(); timer.schedule(new TimerTask() { pu ...

  4. redis配置文件.conf和常用配置

    1,配置文件在哪 2,Units单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2 对大小写不敏感 3,INCLUDES包含 和我们的spring配置文件类似,可 ...

  5. JSP页面基础用法和方法查询

    导包jar:jstl.jar    standard.jar jsp嵌套java代码,使用jsp脚本:1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 ...

  6. npm执行清理缓存失败npm cache clean

    C:\Users\you name>npm cache cleannpm ERR! As of npm@5, the npm cache self-heals from corruption i ...

  7. [PHP学习教程 - 网络]002.$_SERVER["SCRIPT_NAME"]、$_SERVER["PHP_SELF"]、$_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]介绍($_SERVER URL Infomation)

    引言:在使用原生PHP的时候,对于URL路径的切割,如:域名,查询参数等等的提取,通常绝大多数兄弟会忽略$_SERVER中定义的内置常量的关系,这里为大家讲解一下. 常用的URL请求路径$_SERVE ...

  8. CSS3新增伪类有那些?

    p:first-of-type 选择属于其父元素的首个元素 p:last-of-type 选择属于其父元素的最后元素 p:only-of-type 选择属于其父元素唯一的元素 p:only-child ...

  9. Java实现 LeetCode 743 网络延迟时间(Dijkstra经典例题)

    743. 网络延迟时间 有 N 个网络节点,标记为 1 到 N. 给定一个列表 times,表示信号经过有向边的传递时间. times[i] = (u, v, w),其中 u 是源节点,v 是目标节点 ...

  10. Java实现 LeetCode 685 冗余连接 II(并查集+有向图)

    685. 冗余连接 II 在本问题中,有根树指满足以下条件的有向图.该树只有一个根节点,所有其他节点都是该根节点的后继.每一个节点只有一个父节点,除了根节点没有父节点. 输入一个有向图,该图由一个有着 ...